Spring AOP问题

培公啊 发布于 2014/12/02 19:31
阅读 3K+
收藏 0

最近刚学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>


然后配置了两个bean,一个接口实现类的bean,另一个是advice的bean


运行之后就报错,下面发的是第一行的错误信息

我把<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包啊


加载中
0
battyman
battyman

 java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException

少包啊 aspectjweaver

培公啊
培公啊
果然是这个包啊o(╯□╰)o这个包出了百度搜,官网是eclipse/aspectj里面找嘛
0
培公啊
培公啊

引用来自“battyman”的评论

 java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException

少包啊 aspectjweaver

确实是少aspectjweaver包,但是我引入了aspectj.jar,我用rar看了下,aspectjweaver.jar就在里面,我给解压出来然后重新buildpath就行了。。这是为啥。。
0
battyman
battyman
你用的包不对。不要用从Eclipse官网上下下来的例如aspectj-1.x.x.jar这个包,它只相当于一个平常的打包文件,要使用这个jar包中的lib目录下面的aspectjrt.jar和aspectjweaver.jar这两个
培公啊
培公啊
懂了!多谢多谢
返回顶部
顶部