[英]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.