关于Spring中的AOP动态代理类型转换失败的原因——java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to…
在使用 Spring 动态代理时,JDK Proxy 这种方式必须实现至少一个接口才能实现对方法的拦截。
报错原因:java.lang.ClassCastException(java强制类型转换异常)。
可能是不小心把实现方法写成接口了。
(UserService)Proxy.newProxyInstance(MyBeanFactory.class.getClassLoader(),
UserService.class.getInterfaces()
只需要把接口改为实现类即可:
(UserService)Proxy.newProxyInstance(MyBeanFactory.class.getClassLoader(),
UserServiceImpl.class.getInterfaces()
修改后就正常了。