使用AspectJ LTW的Spring AOP无法正常工作

时间:2013-06-09 10:45:30

标签: aspectj spring-aop load-time-weaving

我正在使用spring aop并定义了一些方面。在我的tomcat上启用了Spring LTW。 在我的应用程序上下文中:

<context:load-time-weaver/>
<aop:aspectj-autoproxy proxy-target-class="false"/>

方面也很好!但目标类是代理的!导致ClassCastException:无法转换$ Proxy ... 请注意,我没有代理我的目标类!

1 个答案:

答案 0 :(得分:0)

如果您使用的是AspectJ LTW,则只需要标记

<context:load-time-weaver/> 
在您的Spring上下文文件中

。所以你可以删除,

<aop:aspectj-autoproxy proxy-target-class="false"/>

如果目标类被代理是因为没有以良好的方式配置带有AspectJ的LTW,因此不是正在处理您的建议的AspectJ,并且Spring正在这样做。因此,您会看到基于代理的目标类。

检查此链接,

http://static.springsource.org/spring/docs/3.2.2.RELEASE/spring-framework-reference/html/aop.html#aop-aj-ltw

http://static.springsource.org/spring/docs/3.2.2.RELEASE/spring-framework-reference/html/aop.html#aop-aj-ltw-environments