不太理解BookService类中的BookDao bookDao;这一行代码

不太理解BookService类中的BookDao bookDao;这一行代码

https://img1.sycdn.imooc.com//climg/6131cc12091c4cb409190531.jpg


https://img1.sycdn.imooc.com//climg/6131cbde09d41c0913680718.jpg


https://img1.sycdn.imooc.com//climg/6131cc4e095d7c7c08140560.jpg

不太理解BookService类中的BookDao bookDao;这一行代码

根据applicationContext-dao.xml文件中是在IOC容器中创建了一个BookDaoImpl对象(BookDao接口的一个具体实现类的对象),对吧?

但是 在BookDao bookDao;一行代码中 BookDao是一个接口, 注入为什么是一个BookDaoImpl对象?

给我一种感觉就是声明这个属性的数据类型是一个接口,但是传入的类型又不匹配一样,就像

我声明一本书有名字

具体的写法是 private String title; 但是赋值的时候却赋值成了整数型的数字private String title = 5

为啥声明的属性类型不是 BookDaoImpl 而是BookDao?

正在回答 回答被采纳积分+1

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

1回答
好帮手慕阿园 2021-09-03 18:31:33

同学你好,Spring容器在注入对象的时候,实际上注入的是实现类对象。写实现类也是可以的,但是一般会写接口。假如修改了dao中的代码,因为service引用了dao中的类,那么也要改变service里面的代码,改完之后要重新编译运行,当项目比较大的时候,编译和运行很浪费时间的,而且可能会产生一些不可预知的意外

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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