Spring Boot autowiring entitymanager特定于配置

时间:2017-08-02 10:15:18

标签: java spring jpa entitymanager

所以我有defaultdev的两种配置,在每个配置中都有

    @Bean
    @Autowired
    public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
        return entityManagerFactory.createEntityManager();
    }

现在我想在某个组件中注入像EntityManager这样的

@Autowired
private EntityManager em;

但我正在接受

... required a single bean, but 2 were found:
    - entityManager: defined by method 'entityManager' in class path resource ...

为什么默认情况下EntityManager没有注入???

1 个答案:

答案 0 :(得分:2)

defaultdev maven个人资料?如果是,那么您应该使用@Profile

为每个配置文件选择配置
@Profile("dev")
@Configuration
public class DevConfig

或者,第二种方式 - 将其中一个bean标记为主要:

@Bean
@Primary
@Autowired
public EntityManager entityManager(EntityManagerFactory entityManagerFactory) {
    return entityManagerFactory.createEntityManager();
}