spring aop 实现过程中踩过的坑:java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to XXXXX

学习Spring的过程中遇到如下的异常:

贴上自己创建的被代理对象如下图:

 原因分析: Spring AOP实现方式有两种,一种使用JDK动态代理,另一种通过CGLIB来为目标对象创建代理。如果被代理的目标实现了至少一个接口,则会使用JDK动态代理,所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理,创建的代理类是目标类的子类。

结论:使用JDK动态代理的方式,需要在配置文件中添加如下配置信息:

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

最后顺利解决遇到的问题!

猜你喜欢

转载自blog.csdn.net/qq_39957294/article/details/86063652
今日推荐