首页 文章

Spring Boot应用程序中的多个数据源

提问于
浏览
1

我正在尝试在Spring Boot(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

1 回答

  • 3

    将使用主 DataSource 创建两个 JdbcTemplate bean . 您可以使用 @Qualifier 将辅助 DataSource 注入辅助 JdbcTemplate . 或者,您可以在创建 JdbcTemplate bean时直接调用 DataSource 方法 .

相关问题