【问题标题】:Can't I use annotation to indicate a bean is a primary bean我不能使用注释来指示 bean 是主 bean
【发布时间】:2011-01-01 04:34:48
【问题描述】:

我们知道,在 Spring 中, 有一个属性“primary”,表示如果有多个 bean 可用于自动装配到一个属性,则 bean 是第一个候选者。

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

请告知我该如何实现,谢谢。

【问题讨论】:

    标签: java spring annotations autowired


    【解决方案1】:

    在 Spring 3.0 中,您使用 @Primary

    表示应该给一个bean 多个候选人时的偏好 有资格自动接线 单值依赖。如果正好 一个“主要”bean 存在于 候选人,它将是自动接线的 价值。

    可直接用于任何类或 用 Component 间接注释或 使用 Bean 注释的方法。

    在班级级别使用 Primary 有 除非组件扫描是无效的 正在使用。如果一个 Primary-annotated 类通过 XML、Primary 声明 注释元数据被忽略,并且 <bean primary="true|false"/> 是 反而受到尊重。

    ref docs

    【讨论】:

    【解决方案2】:

    @Primary 注解仅在您使用 Spring 3.0 时才有效。

    在 Spring 2.5 中,主要属性没有等效的注释。您必须使用 @Qualifier 注释来指定要注入的 bean。另一种选择是为相同的目的定义您自己的限定符注释。

    请参阅docs 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 2013-02-07
      • 2014-12-13
      • 2018-03-06
      • 1970-01-01
      相关资源
      最近更新 更多