使用Spring的AOP时报错“ClassCastException: com.sun.proxy.$Proxy5 cannot be cast to com.demo.aop.Target“

  • Post author:
  • Post category:其他


异常

原因

对于Spring AOP 采用两种代理方法,一种是动态JDK,一种是CGLIB。

如果目标类有接口,则会使用动态JDK创建代理对象;如果没有接口则会选择使用CGLIB创建代理对象。

在本例中使用的是有接口的类来获取,所以报错了

解决

将目标对象变成目标对象的接口,代码如下:

还有一种解决方法,如下:

既然本Target类实现了接口,那么使用的是动态JDK创建代理对象,那么我们就让它用CGLIB创建代理对象。

取消掉实现接口



版权声明:本文为cnds123321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。