J'ai deux applications Spring démarrage qui dépendent du même common
module. Dans le common
module, j'ai deux configuration classes
pour deux différents DB. Dans la première application, je dois avoir une connexion sur le 2 DB , mais dans la seconde application n'est pas nécessaire d'avoir une connexion sur 2 DB et je veux avoir une connexion uniquement sur le premier DB.
La deuxième application par défaut balayant tout le common
module et Configuration
pour deux DB
. Je veux désactiver le contrôle sur la seconde Configuration
. Comment puis je faire ça?
Ceci est mon deuxième application:
@SpringBootApplication(scanBasePackages = { "com" })
@EnableScheduling
public class secondApplication {
public static void main(String[] args) {
SpringApplication.run(secondApplication.class, args);
}
}
Première configuration:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "postgresqlEntityManagers",
transactionManagerRef = "postgresqlTransactionManager",
basePackages = "com.db1")
public class firstConfiguration {
Deuxième configuration:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "postgresqlEntityManagers",
transactionManagerRef = "postgresqlTransactionManager",
basePackages = "com.db2")
public class secondConfiguration {
En fonction de votre code, vous ajoutez un @ComponnentScan
et l' utilisation excludeFilters
pour exclure toutes les classes que vous voulez et aussi excluez des sources de données de configuration automatique en utilisant ce @EnableAutoConfiguration
qui a exclure le terrain. en suivant ces configurations, vous devriez avoir un exemple comme ceci:
@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})