照书上步骤使用BeanNameAutoProxyCreator为项目添加了spring事务管理机制,可是在java代码中使用StudentDAO stdao = (StudentDAO)ctx.getBean("StudentDAO");Student st = new Student("张三");stdao.save(st);报错java.lang.ClassCastException: $Proxy0 cannot be cast to...网上说需要将ctx.getBean()方法的返回值用接口类接收,改为IStudentDAO stdao = (IStudentDAO)ctx.getBean("StudentDAO");Student st = new Student("张三");stdao.save(st);其中IStudentDAO是接口类,StudentDAO是它的实现类,这里为什么申明一个接口类可以直接使用实现类定义的方法呢?ctx.getBean()的返回值明明被强制转换成了IStudentDAO啊,是不是因为Spring管理机制在捣鬼呢?希望有高手能详细给我解释解释这样用接口类的理由,如果是Spring事务管理在捣鬼,希望也能解释一下为什么Spring事务管理要这么设计
1 回答
- 1 回答
- 0 关注
- 1145 浏览
添加回答
举报
0/150
提交
取消