您的位置:首页 > 编程语言 > Java开发

关于Spring AOP动态代理类型转换失败问题--java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to ...

2018-08-14 14:22 471 查看

学习Spring AOP中的动态代理配置时遇到一个类型转换失败的报错:

java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to com.itheima.aop.Target

Spring使用的动态代理有两种:JDK Proxy 和CGLIB。使用前者必须实现至少一个接口才能实现对方法的拦截。使用后者需要两个jar包:asm.jar和cglib.jar,并修改spring配置文件。

我在测试时使用的JDK Proxy,下面是我的测试代码:

报错的原因:不能用接口的实现类(Target)来转换Proxy的实现类,它们是同级,应该用共同的接口来转换。

 

解决办法:

将获得Bean的接收类型改成接口类型(TargetInterface):

修改之后,程序运行正常。

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐