如果存在两个相同Bean类型相同,则按照名称注入

如果存在两个相同Bean类型相同,则按照名称注入

老师您好,请问这句话怎么理解?

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

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

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

2回答
chrismorgen 2018-10-19 17:16:06

你可以这么理解,如果一个接口中有多个实现类,那么以默认的按类型注入就会报错,所以采取按照名称的方式来注入,比如有一个UserDao接口,有两个实现类都实现了这个接口,那么按照类型进行注入的方式就会报错了,此时就可以采用按照名称注入的方式来解决注入的唯一性,两个实现类中都指定这个接口,如果有不明白的地方可以继续提问哦,祝学习愉快~

chrismorgen 2018-10-19 10:18:37

举个例子,下图标记的就是两个Bean类型相同的bean,

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

想有两个相同类型的bean,@Autowired会根据@Repository注解来完成注入,也就向下图的使用方法。因为@Autowired默认的是按照类型进行注入的,所以要在@Autowired下加上@Qualifier来指定注入的名称,此时@Qualifier注解中名称就要与@Repository中的名称想匹配了,祝学习愉快~

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


  • 提问者 李爽爽爽爽 #1
    既然是用的同一个类,为什么要定义两个类名?有什么作用吗?
    2018-10-19 11:46:16
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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