对象初始化问题2

对象初始化问题2

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

spring-service2.xml配置:

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

ServiceDao实现类:

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

老师,在spring配置文件中配置了类自动扫描方式,在测试类中对OrderService接口使用了@Autowired,那么请问老师OrderService是接口,而OrderServiceImpl2是实现了OrderService接口的类,请问使用@Autowired和@Repository怎么能将OrderServiceImpl2类对象初始化OrderService接口呢?

正在回答

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

2回答

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

OrderServiceImpl实现了是OrderService的接口,使用@Autowired是可以被依照类型注入的呦。

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

好帮手慕阿莹 2019-02-18 11:10:08

同学还记得学习多态时候的作业吗?

IAct  actor = new Bear(“小熊”,1);

就是把接口实现类的引用赋值给 actor。而赋值给actor 是哪个实现类,调用的就是哪个实现类中重写的方法。

这个同理。

orderService 调用的是OrderServiceImpl2的引用。调用方法时,就是调用的OrderServiceImpl2中重写的接口方法。

假如说,还有个OrderServiceImpl1,把OrderServiceImpl1注入给orderService 的,那么orderService 调用的就是OrderServiceImpl1中重写的方法。

这样,设置的属性是OrderService ,但具体用它的哪个实现类就交给spring去管理了。

这样使程序的耦合性更低。

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


  • 提问者 慕圣2241928 #1
    老师 @Autowired 这个不是说要类型一致吗,orderService是接口,OrderServiceImpl1是类,怎么能通过@Autowired将OrderServiceImpl1对象初始化orderService接口呢
    2019-02-18 17:08:40
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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