使用Spring的AOP时报错“ClassCastException: com.sun.proxy.$Proxy5 cannot be cast to com.demo.aop.Target“
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Spring的AOP时报错“ClassCastException: com.sun.proxy.$Proxy5 cannot be cast to com.demo.aop.Target“相关的知识,希望对你有一定的参考价值。
异常
原因
对于Spring AOP 采用两种代理方法,一种是动态JDK,一种是CGLIB。
如果目标类有接口,则会使用动态JDK创建代理对象;如果没有接口则会选择使用CGLIB创建代理对象。
在本例中使用的是有接口的类来获取,所以报错了
解决
将目标对象变成目标对象的接口,代码如下:
还有一种解决方法,如下:
既然本Target类实现了接口,那么使用的是动态JDK创建代理对象,那么我们就让它用CGLIB创建代理对象。
取消掉实现接口
以上是关于使用Spring的AOP时报错“ClassCastException: com.sun.proxy.$Proxy5 cannot be cast to com.demo.aop.Target“的主要内容,如果未能解决你的问题,请参考以下文章