Spring 引导应用程序中的多个数据源
multiple datasources in Spring Boot application
我正在尝试使用两个数据库连接 w/in 一个 Spring 引导 (v1.2.3) 应用程序,如文档中所述 (http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-two-datasources.
问题似乎是辅助数据源正在使用主数据源的属性构建。
有人可以指出我在这里遗漏了什么吗?
@SpringBootApplication
class Application {
@Bean
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate secondaryJdbcTemplate(DataSource secondaryDataSource) {
return new JdbcTemplate(secondaryDataSource)
}
@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "primaryJdbcTemplate")
public JdbcTemplate jdbcTemplate(DataSource primaryDataSource) {
return new JdbcTemplate(primaryDataSource)
}
static void main(String[] args) {
SpringApplication.run Application, args
}
}
application.properties:
spring.datasource.primary.url=jdbc:oracle:thin:@example.com:1521:DB1
spring.datasource.primary.username=user1
spring.datasource.primary.password=
spring.datasource.primary.driverClassName=oracle.jdbc.OracleDriver
spring.datasource.secondary.url=jdbc:oracle:thin:@example.com:1521:DB2
spring.datasource.secondary.username=user2
spring.datasource.secondary.password=
spring.datasource.secondary.driverClassName=oracle.jdbc.OracleDriver
两个 JdbcTemplate
bean 都将使用主 DataSource
创建。您可以使用 @Qualifier
将辅助 DataSource
注入辅助 JdbcTemplate
。或者,您可以在创建 JdbcTemplate
bean 时直接调用 DataSource
方法。
我正在尝试使用两个数据库连接 w/in 一个 Spring 引导 (v1.2.3) 应用程序,如文档中所述 (http://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/htmlsingle/#howto-two-datasources.
问题似乎是辅助数据源正在使用主数据源的属性构建。
有人可以指出我在这里遗漏了什么吗?
@SpringBootApplication
class Application {
@Bean
@ConfigurationProperties(prefix="spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public JdbcTemplate secondaryJdbcTemplate(DataSource secondaryDataSource) {
return new JdbcTemplate(secondaryDataSource)
}
@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "primaryJdbcTemplate")
public JdbcTemplate jdbcTemplate(DataSource primaryDataSource) {
return new JdbcTemplate(primaryDataSource)
}
static void main(String[] args) {
SpringApplication.run Application, args
}
}
application.properties:
spring.datasource.primary.url=jdbc:oracle:thin:@example.com:1521:DB1
spring.datasource.primary.username=user1
spring.datasource.primary.password=
spring.datasource.primary.driverClassName=oracle.jdbc.OracleDriver
spring.datasource.secondary.url=jdbc:oracle:thin:@example.com:1521:DB2
spring.datasource.secondary.username=user2
spring.datasource.secondary.password=
spring.datasource.secondary.driverClassName=oracle.jdbc.OracleDriver
两个 JdbcTemplate
bean 都将使用主 DataSource
创建。您可以使用 @Qualifier
将辅助 DataSource
注入辅助 JdbcTemplate
。或者,您可以在创建 JdbcTemplate
bean 时直接调用 DataSource
方法。