码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA学习(七)__Spring的@Autowired注入规则

时间:2014-11-19 07:12:09      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:color   使用   sp   java   div   代码   bs   as   line   

@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方式注入的

JAVA学习(七)__Spring的@Autowired注入规则

标签:color   使用   sp   java   div   代码   bs   as   line   

原文地址:http://www.cnblogs.com/toSeeMyDream/p/4107244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!