使一个bean成为默认的spring bean

时间:2017-08-16 18:25:45

标签: java spring hibernate jpa dependency-injection

我有javax.persistence.EntityManagerFactory的3个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?

2 个答案:

答案 0 :(得分:2)

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

检查here

答案 1 :(得分: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){..}