搭建Spring+mybatis报错

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");
posted @ 2019-03-31 22:45  以苦做舟  阅读(142)  评论(0编辑  收藏  举报