Как создать один файл конфигурации java с несколькими конфигурациями источников данных, упомянутых в application.properties, так что при добавлении любого 'n' количества источников данных. Он должен обрабатывать все источники данных автоматически с одним и тем же файлом конфигурации.
Кроме того, все источники данных должны использовать один и тот же JPARepository для запроса данных. Кроме того, я хочу создать список менеджеров сущностей для выполнения определенных c операций с источниками данных specfi c.
application.properties
site1.url=jdbc:postgresql://localhost:4567/postgres
site1.username=someUsername
site1.password=somePassword
site2.url=jdbc:postgresql://localhost:5433/postgres
site2.username=someUsername
site2.password=somePassword
SiteConfiguration. java
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "site1EntityManager",
transactionManagerRef = "site1TransactionManager",
basePackages = "com.someProject.repositoryInterface"
)
public class Site1Config extends HikariConfig {
@Autowired
private Environment environment;
@Primary
@Bean(name = "site1EntityManager")
public HikariDataSource mysqlDataSource() {
setJdbcUrl(environment.getProperty("site1.url"));
setUsername(environment.getProperty("site1.username"));
setPassword(environment.getProperty("site1.password"));
return new HikariDataSource(this);
}
@Primary
@Bean(name = "site1EntityManager")
public LocalContainerEntityManagerFactoryBean mysqlEntityManagerFactory(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(mysqlDataSource())
.packages(ModelClass.class)
.persistenceUnit("site1PU")
.build();
}
@Primary
@Bean(name = "site1TransactionManager")
public PlatformTransactionManager mysqlTransactionManager(@Qualifier("site1EntityManager") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}
Это базовый c пример файла конфигурации единого источника данных. Я хочу сделать SiteConfiguration как класс generi c в форме 'site (Number)' и создать отдельные источники данных, менеджеры сущностей для каждого из случаев.
АВТОМАТИЧЕСКИ ЭТО ДОЛЖНО ПОЛУЧИТЬ НОМЕР Данных из файла application.properites, и он должен настроить все данные, указанные в файле свойств.
Кроме того, каждый источник данных должен использовать один и тот же JPARepository.