Spring使用@Autowired注入Bean

@Autowired是Spring3.0引入的注解,可以标注在类的属性上,这样Spring容器就会采取byType的方式来注入对应的Bean。

@Autowired
private Instrument instrument;

如果Spring容器中不存在一个类型为Instrument的Bean,那么在启动程序的时候就会报错:NoSuchBeanDefinitionException。还有一种会报错的情况,就是Spring容器中存在多个类型为(is-a)Instrument的Bean,抛出的异常与上面一样。因为Spring容器此时不知道该使用哪一个Bean来注入到属性中,这是一个Fail-Fast的策略。那么如何解决存在多个相同类型的Bean的情况呢?可以使用@Qualifier注解。

@Autowired
@Qualifier("guitar")
private Instrument instrument;

@Qualifier在这里告诉Spring容器如果存在多个类型为Instrument的Bean,那么就使用id为guitar的Bean来注入instrument这个属性。@Qualifier的作用是缩小@Autowire的范围。

转载于:https://www.cnblogs.com/strikew/p/3502407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值