【问题标题】:Make one bean the default spring bean将一个 bean 设为默认的 spring bean
【发布时间】:2017-08-16 18:25:44
【问题描述】:

我有 3 个 javax.persistence.EntityManagerFactory bean。

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory()  {       
          //Make this the default bean
}

这是我得到的例外。

No qualifying bean of type 'javax.persistence.EntityManagerFactory' available: expected single matching bean but found 3

在有多个相同类型的 bean 的情况下,如何使上述 bean 成为默认 bean?

【问题讨论】:

  • 在方法中添加@Primary

标签: java spring hibernate jpa dependency-injection


【解决方案1】:

我认为在这种情况下@Primary 注释就足够了。

检查here

【讨论】:

    【解决方案2】:

    您还可以定义 @Bean 名称并使用 @Qualifier 注释来注入 bean 依赖项。

    例如:

    @Bean(name="first")
    MyBean getFirstBean() {..}
    
    @Bean(name="second") 
    MyBean getSecondBean(){..}
    
    @Bean(name="third")
    MyBean getThirdBean(){..}
    
    @Autowired
    @Qualifier("second")
    public void usingTheSecondBeand( MyBean theSecondBean){..}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多