@Qualifier:限定描述符,用于细粒度选择候选者
- @Autowired默认是根据类型进行注入的,因此如果有多个类型一样的Bean候选者,则需要限定其中一个候选者,否则将抛出异常
- @Qualifier限定描述符除了能根据名字进行注入,更能进行更细粒度的控制如何选择候选者
根据基于XML配置中的<qualifier>标签指定的名字进行注入,使用如下方式指定名称:
-
- 其中type属性可选,指定类型,默认就是Qualifier注解类
- name就是给Bean候选者指定限定标识符
- 一个Bean定义中只允许指定类型不同的<qualifier>,如果有多个相同type后面指定的将覆盖前面的
使用举例:
- 或者:
缺省的根据Bean名字注入:
- 最基本方式,是在Bean上没有指定<qualifier>标签时一种容错机制,即缺省情况下使用Bean标识符注入,
- 但如果你指定了<qualifier>标签将不会发生容错。