Exception encountered during context initialization - cancelling refresh attempt: org.springframewor

警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [D:\dev\idea\spring-02-AOP1\out\production\spring-02-AOP1\nwl\demo2\UserDaoImpl.class]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.nwl.demo2.UserDaoImpl [Xlint:invalidAbsoluteTypeName]
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [D:\dev\idea\spring-02-AOP1\out\production\spring-02-AOP1\nwl\demo2\UserDaoImpl.class]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.nwl.demo2.UserDaoImpl [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:610)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:144)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85)
at nwl.demo2.Main.main(Main.java:7)
Caused by: java.lang.IllegalArgumentException: warning no match for this type name: com.nwl.demo2.UserDaoImpl [Xlint:invalidAbsoluteTypeName]
at org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:319)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:227)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.obtainPointcutExpression(AspectJExpressionPointcut.java:198)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getClassFilter(AspectJExpressionPointcut.java:177)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:226)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:289)
at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:321)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoProxyCreator.java:128)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:97)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:78)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:339)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:291)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:437)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602)
... 11 more

下面是代码

@Component
public class UserDaoImpl {
    public void add() {
//        int a=10/0;
        System.out.println("add");
    }
}

@Component
@Aspect
public class ProxyDemo{
    //最终通知
    @After(value = "execution(* com.nwl.demo2.UserDaoImpl.*(..))")
    public void after(){
        System.out.println("after.......");
    }
    //前置通知
    @Before(value = "execution(* com.nwl.demo2.UserDaoImpl.add(..))")
    public void before(){
        System.out.println("before.......");
    }
    //后置通知,当有异常时不执行
    @AfterReturning(value = "execution(* com.nwl.demo2.UserDaoImpl.add(..))")
    public void afterReturning(){
        System.out.println("afterReturning.......");
    }
    //异常通知,当有异常时执行
    @AfterThrowing(value = "execution(* com.nwl.demo2.UserDaoImpl.add(..))")
    public void afterThrowing(){
        System.out.println("afterThrowing.......");
    }
    //环绕通知
    @Around(value = "execution(* com.nwl.demo2.UserDaoImpl.add(..))")
    public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        System.out.println("Around前.......");
        proceedingJoinPoint.proceed();//调用被增强的方法
        System.out.println("Around后.......");
    }
}


public class Main {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean2.xml");
        UserDaoImpl userDao = applicationContext.getBean("userDaoImpl",UserDaoImpl.class);
        userDao.add();
    }
}

报这个错的原因有两个
一个是execution(* com.nwl.demo2.UserDaoImpl.add(..))位置的类名不对
另外是导入的aspectj的jar包不对,可以多试几个版本

上一篇:iZotope系列音频软件如何卸载


下一篇:mysql workbench报错ssl is required but the server doesn't support it