在我的SpringBoot应用程序中,我需要支持两个数据源。是否可以让我的DatabaseConfig类在我的本地环境中支持常规数据源,但是在其他环境中它是否可以作为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());
}
}
谢谢!
答案 0 :(得分:1)
可以看一下@Profile
注释。您可以将其与@Bean
,@Component
结合使用(也适用于@Service
,...)或@Configuration
等儿童注释。
查看this Spring docs section以了解如何使用它。
查看this Spring Boot docs section以研究如何为Spring Boot应用程序定义配置文件。通过命令行定义配置文件被认为是最佳选择。