java.lang.ClassCastException: com.sun.proxy.$Proxy12 cannot be cast to com.bdqn.service.impl.UserServiceImpl
代理类无法强制转换成接口实现类,这里造成的原因主要因为在测试类中,变量的数据类型是实现类而非接口,本人代码如下
public static void main(String[] args){
ApplicationContext ac = new ClassPathXmlApplicationContext("resource/spring.xml");
// 主要下面代码的错
UserServiceImpl userService = (UserServiceImpl) ac.getBean("userService");
userService.updateWork();
}
解决方案
第一种,配置文件中添加下面代码,指定根据类创建代理类
<aop:aspectj-autoproxy proxy-target-class="true"/>
第二种,修改变量数据类型
UserService userService = (UserService) ac.getBean("userService");
原文:https://www.cnblogs.com/lihao110/p/10633803.html