Dao注入实现类非接口报错

Dao注入实现类非接口报错

http://img1.sycdn.imooc.com//climg/5f08436c09764f9f05270236.jpg

老师您好,这部分注入StudentDao的时候我写的是StudentDaoImp就会报类型匹配错误。

想了解下,具体的报错原因是是什么。因为我们bean配置的时候使用的是StudentDaoImp,为什么注入的时候不能写StudentDaoImp呢。

谢谢解答

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

报错是因为,在测试类中studentDao是StudentDaoImpl类型,无法生成实现类的代理,所以报错。同学将xml中代码<property name="beanNames" value="*Dao"/>注释掉后,就可以注入了。

祝学习愉快~

好帮手慕阿慧 2020-07-10 18:56:19

同学你好,@Resource中name的值要与applicationContext3.xml文件中bean标签的id值一致。由于xml文件没有id为StudentDaoImpl的

bean,所以程序会报错。同学可以修改xml中bean标签id的值,如下:

http://img1.sycdn.imooc.com//climg/5f0848db09d8513d06090101.jpg

http://img1.sycdn.imooc.com//climg/5f0848e909c98b9b03000088.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 MarekZhang #1
    不是的老师,我的xml中配置的名称和@Resource赋值name是相同的。只是使用的是类型使用StudentDaoImp就会报错,使用StudentDao就不会,想知道具体的原因是什么 我看有同学问了相似的问题,但是还未被解答: https://class.imooc.com/course/qadetail/209341
    2020-07-10 19:11:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师