当一个接口有多个实现类时,@Autowired会出问题吗?

转载:https://www.oschina.net/question/1158633_229054

十月阳光 发布于 2015/03/24 11:25

 

阅读 16K+

 

收藏 1

 

 答案 2

Spring Java EE

开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>   

@Autowired是按类型进行装配的,那么我一个接口UserInterface,有多个实现类AImpl,BImpl....这些实现类我都加入了Spring容器,当我在一个类中使用如下语句: 

 

@Autowired
private IUserInterface userInterface;

 

 

那么按找类型来装配,到底是找到哪个实现类进行装配? 

 

这个地方是不是应该用@Resource(name="...")来装配? 

收藏 (1)

 分享

举报

最多投票最新

0

ddoonnaahhuuee

ddoonnaahhuuee 

2015/03/25 10:03

当容器中存在多个 Bean 的类型与需要注入的相同时,注入将不能执行,我们可以给 @Autowired 增加一个候选值,做法是在 @Autowired 后面增加一个 @Qualifier 标注,提供一个 String 类型的值作为候选的 Bean 的名字

 

@Autowired(required=false) //注入不成功也不会发生异常
 @Qualifier("AImpl")

 

 

 评论 (2)  引用此答案  举报

ddoonnaahhuuee

ddoonnaahhuuee 

2015/03/25 15:13

@十月阳光 嗯哪

 回复  举报

十月阳光

十月阳光 

2015/03/25 11:36

@Qualifier我知道。 不过这样看来,使用@Resource(name="")更值得推荐了

 回复  举报

0

超级大丁丁

超级大丁丁 

2015/03/25 11:33

学习了

 评论 (0)  引用此答案  举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值