我们在Spring中知道< bean>有一个属性“primary”,表示如果有多个bean可以自动连接到属性,则bean是第一个候选者。
但现在我的所有bean定义都是使用@Component / @Service等声明的,我找不到相应的“primary”属性,我可以使用它来声明bean。
请告知我如何实现这一目标,谢谢。
答案 0 :(得分:26)
在Spring 3.0中,您使用@Primary
。
表示应该给出一个bean 多个候选人的偏好 有资格自动装备 单值依赖。如果确切 一个'主'豆存在于其中 候选人,它将是自动装配的 值。
可直接用于任何课程或 用Component或者间接注释 关于使用Bean注释的方法。
在班级使用Primary有 除非组件扫描,否则没有效果 正在使用。如果是主要注释 class是通过XML,Primary声明的 注释元数据被忽略,并且
<bean primary="true|false"/>
是 反而受到尊重。
请参阅ref docs。
答案 1 :(得分:4)
@Primary注释仅在使用Spring 3.0时才有效。
在Spring 2.5中,主要属性没有等效的注释。您必须使用@Qualifier批注指定要注入的bean。另一种选择是为同一目的定义自己的限定符注释。
有关详细信息,请参阅docs。