关于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):
修改之后,程序运行正常。
阅读更多
相关文章推荐
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...今天
- 解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ...
- 关于Spring事务代理类型转换问题($ProxyXX cannot be cast to 类型)(二)
- 关于Spring事务代理类型转换问题($ProxyXX cannot be cast to 类型)(一)
- Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
- 关于使用动态代理创建代理对象是报错 java.lang.ClassCastException: $Proxy0 cannot be cast to 的解决办法
- 关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection
- Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
- 类型转换错误java.math.BigDecimal cannot be cast to java.lang.String
- net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to xxx 关于JSON对象解析List<XXX>在调用时出错问题
- 类型转换错误类似java.math.BigDecimal cannot be cast to java.lang.Double 解决办法
- 类型转换错误java.math.BigDecimal cannot be cast to java.
- 奇怪的hibernate 的类型转换错误: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang
- 异常-----springmvc + ajaxfileupload解决ajax不能异步上传图片的问题。java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.
- Spring+hibernate中的问题解决:java.lang.ClassCastException: $Proxy6 cannot be cast to com.mqEsb.service.imp
- 类型转换错误java.math.BigDecimal cannot be cast to java.lang.String
- 动态代理异常com.sun.proxy.$Proxy0 cannot be cast to
- Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
- 类型转换错误java.math.BigDecimal cannot be cast to java.lang.String