今天配置spring的普通类管理,发现配置了
<aop:aspectj-autoproxy proxy-target-class="true"/>
可以正常使用cglib,而如果再配置上
<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
就会报错!
java.lang.ClassCastException: $Proxy14 cannot be cast to com.xxx
求说明 我知道aop:aspectj-autoproxy proxy-target-class= true是使用cglib强制动态代理,但是为啥加入后面的就会报错呢?
AnnotationAwareAspectJAutoProxyCreator这个配置究竟对spring影响了什么呢?
如果两个都不配置,也不会报错,说明spring可以自动切换cglib和jdk 这个我明白一点。
如果只配置AnnotationAwareAspectJAutoProxyCreator也会同样错,这是不是说明AnnotationAwareAspectJAutoProxyCreator配置强制使spring使用jdk代理?但是一般的切面也有用到,如果使用是强制jdk代理,那些没实现接口的不都要报错吗?求解释呀