@Autowired默认规则
来源:互联网 发布:二手域名 编辑:程序博客网 时间:2024/04/20 20:02
@Autowired 默认是按照byType进行注入的,但是当byType方式找到了多个符合的bean,又是怎么处理的?
经过一些代码的测试,我发现,Autowired默认先按byType,如果发现找到多个bean,则,又按照byName方式比对,如果还有多个,则报出异常。
例子:
@Autowired
private ExamUserMapper examUserMapper; // ExamUserMapper是一个接口
1. spring先找类型为ExamUserMapper的bean
2. 如果存在且唯一,则OK;
3. 如果不唯一,在结果集里,寻找name为examUserMapper的bean。因为bean的name有唯一性,所以,到这里应该能确定是否存在满足要求的bean了
@Autowired也可以手动指定按照byName方式注入,使用@Qualifier标签,例如:
@Autowired ()
@Qualifier ("baseDao")
因为bean的name具有唯一性,理论上是byName会快一点,但spring默认使用byType的方式注入,让我很迷惑,确定不了哪一个真的快。具体到实际应用,感觉差别不大,就看大家的习惯
另注:@Resource(这个注解属于J2EE的)的标签,默认是按照byName方式注入的
0 0
- @Autowired默认规则
- Spring的@Autowired注入规则
- Spring的@Autowired注入规则
- Spring的@Autowired注入规则
- Spring的@Autowired注入规则
- @Autowired默认按照类型进行注入
- 防火墙默认规则
- 列可空性的默认规则
- jquery默认校验规则
- jQuery默认校验规则
- jquery默认校验规则
- MSSQL 规则与默认
- StyleCop默认的规则
- 讲义21:默认规则
- formvalidate默认验证规则
- mysql默认排序规则
- C++ 默认初始化规则
- 默认校验规则
- Java I/O 学习总结(二)
- 深化Java基础之——对象与内存控制
- Java实现常见的排序算法
- 栈
- (SystemJS) Can't resolve all parameters for
- @Autowired默认规则
- 关于Office Professional Plus 2013 VOL 和Office Professional Plus 2013
- wget 无法建立ssl连接 ERROR: certificate common name “a.ssl.fastly.net”
- service的简介
- AlexNet论文翻译与解读
- 微信小程序登录页动画-云层漂浮
- jquery EasyUi combobox 控件样式修改(对当前combobox的修改)
- 网络视图gridView
- Composer 使用小技巧