Tengo dos aplicaciones primavera de arranque que dependen de la misma common
módulo. En el common
módulo, tengo dos de configuración classes
para dos diferentes DB. En la primera aplicación, que necesita tener una conexión a la base de datos 2, pero en la segunda aplicación no es necesario tener una conexión de 2 dB y yo quiero tener una conexión sólo en la primera base de datos.
Mi segunda aplicación por defecto el escaneo de todo el common
módulo y Configuration
para dos DB
. Quiero desactivar el escaneado en el segundo Configuration
. ¿Cómo puedo hacer eso?
Esta es la segunda aplicación:
@SpringBootApplication(scanBasePackages = { "com" })
@EnableScheduling
public class secondApplication {
public static void main(String[] args) {
SpringApplication.run(secondApplication.class, args);
}
}
Primera configuración:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "postgresqlEntityManagers",
transactionManagerRef = "postgresqlTransactionManager",
basePackages = "com.db1")
public class firstConfiguration {
En segundo lugar Configuración:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "postgresqlEntityManagers",
transactionManagerRef = "postgresqlTransactionManager",
basePackages = "com.db2")
public class secondConfiguration {
Sobre la base de su código, se agrega una @ComponnentScan
y el uso excludeFilters
con el fin de excluir cualquier clase que desee y también se excluye que a partir de fuentes de datos de configuración automática a través de este @EnableAutoConfiguration
que tiene excluir campo. siguiendo estas configuraciones, usted debe tener un ejemplo como este:
@ComponentScan(basePackages = "com.example.project",
excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE,
classes = {AnyCustomConnectionProvider.class, AnyCustomJpaConfiguration.class}))
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class,
HibernateJpaAutoConfiguration.class})