Java 具有多个外部实体管理器的WebMvcAutoConfiguration
我在将现有SpringWeb应用程序迁移到SpringBoot1.5.13的过程中遇到了一个问题。我已经处理了几乎所有的事情,但是我无法将好的持久性单元注入到WebMvcAutoConfiguration中。实际上,我有3个不同的实体管理器工厂,它们是从类路径导入的(由3个不同的内部库作为.xml文件提供,我无法更改它们)。它们中的每一个都以这种方式拆分:Java 具有多个外部实体管理器的WebMvcAutoConfiguration,java,spring,spring-mvc,spring-boot,spring-data-jpa,Java,Spring,Spring Mvc,Spring Boot,Spring Data Jpa,我在将现有SpringWeb应用程序迁移到SpringBoot1.5.13的过程中遇到了一个问题。我已经处理了几乎所有的事情,但是我无法将好的持久性单元注入到WebMvcAutoConfiguration中。实际上,我有3个不同的实体管理器工厂,它们是从类路径导入的(由3个不同的内部库作为.xml文件提供,我无法更改它们)。它们中的每一个都以这种方式拆分: <sqe-db:jpa-emf database-definition-name="db-name" embedded-datasou
<sqe-db:jpa-emf database-definition-name="db-name" embedded-datasource="false"/>
此时,我的目标是使以下配置到位:
- 让应用程序既可以作为SpringApplication运行,也可以作为WAR部署(我想我已经做得很好了)
- 有办法为web应用程序使用Spring引导自动配置,即使类路径中有多个实体工厂
- 将我自己的数据源用于“dev”概要文件,但将tomcat数据源留给其他环境
任何想法,或不同的方法都是非常受欢迎的经过一晚上的良好睡眠,我能够找到最简单的解决方案 我将其添加到我的配置类中:
@Autowired
@Qualifier("name-of-default-factory")
private EntityManagerFactory entityManagerFactory;
@Bean
@Primary
public EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}
现在它将正确地注入主bean
Method requestMappingHandlerMapping in org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$EnableWebMvcConfiguration required a single bean, but 3 were found:
- jpa-lib1-name1: defined in null
- jpa-lib1-name2: defined in null
- jpa-lib1-name3: defined in null
@Autowired
@Qualifier("name-of-default-factory")
private EntityManagerFactory entityManagerFactory;
@Bean
@Primary
public EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}