最近刚学Spring,建了4个java类,其中一个接口,一个实现类,只有输出一句话的方法,一个advice,还有一个测试类,都在com.spring.firstAOP包下
在xml文件中用<aop:config>配置的
<aop:config> <aop:pointcut expression="execution(* com.spring.firstAOP.*.*(..))" id="sayHello" /> <aop:aspect id="doadvice" ref="beforeAdviceLogging"> <aop:before method="beforeAdvice" pointcut-ref="sayHello" /> </aop:aspect> </aop:config>
运行之后就报错,下面发的是第一行的错误信息
我把<aop:config>这段注释掉就没事,用的spring4.04
导入了spring里边的21个jar包,aopalliance.jar,commons-logging.jar,log4j相关jar包,和aspectj.jar
跪求大神,俩小时了。。都没弄明白
Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': Cannot create inner bean '(inner bean)#7adda9cc' of type [org.springframework.aop.aspectj.AspectJMethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#7adda9cc': Cannot resolve reference to bean 'sayHello' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sayHello': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
是不是少了aspectjweaver.jar包啊
异常写的挺清楚的,没有默认构造方法吧. 添加上就行了. 建议了解下这个增强的原理. 它会替换相关的newInstance
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。