簡體   English   中英

多個數據源

[英]Multiple Datasources

我為Oracle DB連接了以下示例的兩個數據源:

@Configuration公共類SpringConfigurationProperties擴展了DataSourceProperties {

@Bean
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource primaryDatasource() {
    return DataSourceBuilder.create().build();
}

@Bean
@Qualifier("primaryDatasource")
public NamedParameterJdbcTemplate primaryNpJdbcTemplate(DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
}

@Bean
@ConfigurationProperties(prefix="gps.bulk.load.database")
public DataSource bulkLoadDatasource() {
    return DataSourceBuilder.create().build();
}

@Bean
@Qualifier("bulkLoadDatasource")
public NamedParameterJdbcTemplate bulkLoadNpJdbcTemplate(DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
}

}

但是我在啟動時遇到以下錯誤:

org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker需要一個bean,但是找到了2個

我想我可以重現此錯誤:

Parameter 1 of constructor in org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker required a single bean, but 2 were found: - myConfig: defined in file [...MyConfig.class] - spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties: defined in null

似乎像spring boot那樣,為構造函數DataSourceInitializerInvoker找到了2個DataSourceProperties,我不確定為什么,因為我只有一個類,但是當我將Configuration標記為Primary時,它可以工作。

@Configuration 
@Primary
public class SpringConfigurationProperties extends DataSourceProperties {
...

}

評論.properties的附加信息:

spring.datasource.url = JDBC:MySQL的://本地主機/測試
spring.datasource.username =測試
spring.datasource.password =測試
spring.datasource.driver類名=測試

gps.bulk.load.database.url =測試
gps.bulk.load.database.username =測試
gps.bulk.load.database.password =測試
gps.bulk.load.database.driver類名=測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM