Код: Выделить всё
@Configuration("colDataSourcesConfig")
public class DataSourcesConfig {
// obtiene las propiedades de la base de datos
@Bean("oracleColProperties")
@ConfigurationProperties(prefix = "spring.datasource.oraclecol")
public DataSourceProperties getOracleColProperties() {
return new DataSourceProperties();
}
// obtiene el origen de datos de la base de datos
@Bean
@Qualifier("oracleColDataSource")
public DataSource getOracleColoDataSource(){
return getOracleColProperties().initializeDataSourceBuilder().build();
}
// crea un cliente jdbc para la base de datos usando el origen de datos
@Bean
public JdbcClient jdbcClientCol (@Qualifier("oracleColDataSource") DataSource dataSource) {
return JdbcClient.create(dataSource);
}
Код: Выделить всё
@Configuration
@EnableJpaRepositories(
basePackages = "com.femsa.oxxo.repository.utileriarepository.col",
entityManagerFactoryRef = "oracleColEntityManagerFactory",
transactionManagerRef = "oracleColTransactionManager"
)
@EnableTransactionManagement
public class OracleColJpaConfig {
@Bean("oracleColEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean oracleColEntityManagerFactory(@Qualifier("oracleColDataSource" ) DataSource oracleColDataSource) {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(oracleColDataSource);
em.setPackagesToScan("com.femsa.oxxo.model");
em.setPersistenceUnitName("oracleCol");
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
Map additionalProperties = new HashMap();
//additionalProperties.put("hibernate.dialect","org.hibernate.dialect.H2Dialect");
//additionalProperties.put("hibernate.dialect","org.hibernate.dialect.Oracle10gDialect");
em.setJpaPropertyMap(additionalProperties);
return em;
}
@Bean("oracleColTransactionManager")
public JpaTransactionManager getOracleColTransactionManager(@Qualifier("oracleColEntityManagerFactory") LocalContainerEntityManagerFactoryBean oracleColEntityManagerFactory) {
return new JpaTransactionManager(Objects.requireNonNull(oracleColEntityManagerFactory.getObject()));
}
}
Я исследовал различные конфигурации и подходы в Spring Boot, но пока не нашел решения. Я рассматривал возможность реализации функции автоматического выключателя Resilience4j, но не уверен в ее интеграции с несколькими источниками данных в среде Spring Boot. Будем очень признательны за любые рекомендации или примеры того, как этого добиться.
Подробнее здесь: https://stackoverflow.com/questions/783 ... oject-with