所以我有 default
和 dev
两种配置,并且在每个配置中都有一个
@Bean
@Autowired
public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
现在我想在某个组件中像这样注入(inject)EntityManager
@Autowired
private EntityManager em;
但是我收到了
... required a single bean, but 2 were found:
- entityManager: defined by method 'entityManager' in class path resource ...
为什么默认的EntityManager
没有被注入(inject)???
最佳答案
default
和 dev
是 maven 配置文件吗?如果是,那么您应该使用 @Profile
@Profile("dev")
@Configuration
public class DevConfig
或者,第二种方法 - 将其中一个 bean 标记为主要:
@Bean
@Primary
@Autowired
public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
return entityManagerFactory.createEntityManager();
}
关于java - Spring Boot Autowiring 实体管理器特定于配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45457972/