@Autowired,required,@Qualifier作用

本文详细介绍了Spring框架中@Autowired、required和@Qualifier注解的用法。@Autowired默认按类型注入,当存在多个候选Bean时,可以通过@Qualifier指定名称来解决歧义。required属性用于配置当找不到匹配Bean时是否抛出异常。结合使用这两个注解,可以灵活控制依赖注入的过程。
摘要由CSDN通过智能技术生成

@Autowired(required = false)
当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错。

@Autowired  
@Qualifier("office")   
private Office office;    //xml配置文件中存在office和office2两个Bean
在 Spring 容器中配置了两个类型为 Office 类型的 Bean,当对 Boss 的 office 成员变量进行自动注入时,Spring 容器将无法确定到底要用哪一个 Bean,因此异常发生了。   
Spring 允许我们通过 @Qualifier 注释指定注入 Bean 的名称,这样歧义就消除了。

@Qualifier("office") 中的 office 是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。
@Autowired 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。
正是由于注释对象的不同,所以 Spring 不将 @Autowired 和 @Qualifier 统一成一个注释类。

@Autowired是根据类型注入,@Qualifier是根据名称注入

以上说的Bean 的名称是指bean中的id

参考:http://darkmasky.iteye.com/blog/1129828

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十六画生的博客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值