我不能使用注释来指示bean是主bean

时间:2010-01-04 09:33:24

标签: java spring annotations autowired

我们在Spring中知道< bean>有一个属性“primary”,表示如果有多个bean可以自动连接到属性,则bean是第一个候选者。

但现在我的所有bean定义都是使用@Component / @Service等声明的,我找不到相应的“primary”属性,我可以使用它来声明bean。

请告知我如何实现这一目标,谢谢。

2 个答案:

答案 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