为了账号安全,请及时绑定邮箱和手机立即绑定

为什么加入了spring事务管理机制的程序要直接使用接口的方法?

为什么加入了spring事务管理机制的程序要直接使用接口的方法?

阿晨1998 2018-10-28 05:01:57
照书上步骤使用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
提交
取消
意见反馈 帮助中心 APP下载
官方微信