多个 Spring 引导数据源作为常规和基于 Env 的 JNDI
Multiple Spring Boot datasources as Regular and JNDI based on Env
在我的 SpringBoot 应用程序中,我需要支持两个数据源。是否可以让我的 DatabaseConfig class 在我的本地环境中支持常规数据源,但让它在我的其他环境中作为 JNDI 数据源工作?另一个数据源将始终是所有环境中的常规数据源。
@Configuration
public class DatabaseConfig {
@Primary
@ConfigurationProperties(prefix = "spring.firstDatasource")
@Bean(name = "firstDatasource")
public DataSource contentDatasource() {
return DataSourceBuilder.create().build();
}
@ConfigurationProperties(prefix = "spring.secondDatasource")
@Bean(name = "secondDatasource")
public DataSource secondDatasource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "jdbcFirst")
public JdbcTemplate firstJdbcTemplate(DataSource firstDatasource) {
return new JdbcTemplate(firstDatasource());
}
@Bean(name = "jdbcSecond")
public JdbcTemplate secondJdbcTemplate(DataSource secondDatasource) {
return new JdbcTemplate(secondDatasource());
}
}
谢谢!
有可能,看看@Profile
注解。您可以将它与 @Bean
、@Component
(也适用于子注释,如 @Service
、...)或 @Configuration
.
结合使用
查看 this Spring docs section 了解如何使用它。
查看 this Spring Boot docs section 以研究如何为 Spring 启动应用程序定义配置文件。通过命令行定义配置文件被认为是最佳选择。
在我的 SpringBoot 应用程序中,我需要支持两个数据源。是否可以让我的 DatabaseConfig class 在我的本地环境中支持常规数据源,但让它在我的其他环境中作为 JNDI 数据源工作?另一个数据源将始终是所有环境中的常规数据源。
@Configuration
public class DatabaseConfig {
@Primary
@ConfigurationProperties(prefix = "spring.firstDatasource")
@Bean(name = "firstDatasource")
public DataSource contentDatasource() {
return DataSourceBuilder.create().build();
}
@ConfigurationProperties(prefix = "spring.secondDatasource")
@Bean(name = "secondDatasource")
public DataSource secondDatasource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "jdbcFirst")
public JdbcTemplate firstJdbcTemplate(DataSource firstDatasource) {
return new JdbcTemplate(firstDatasource());
}
@Bean(name = "jdbcSecond")
public JdbcTemplate secondJdbcTemplate(DataSource secondDatasource) {
return new JdbcTemplate(secondDatasource());
}
}
谢谢!
有可能,看看@Profile
注解。您可以将它与 @Bean
、@Component
(也适用于子注释,如 @Service
、...)或 @Configuration
.
查看 this Spring docs section 了解如何使用它。
查看 this Spring Boot docs section 以研究如何为 Spring 启动应用程序定义配置文件。通过命令行定义配置文件被认为是最佳选择。