我已經開發了兩個使用Spring Boot框架的Web服務,我在同一個項目中使用它們。每個Web服務使用不同的數據庫,例如ws1使用Oracle1,而ws2使用Oracle2。我用beans定義了一個DataBaseConfig,但是當我運行這個應用程序時,總是使用一個web服務(並且它總是相同的)。SpringBoot的Web服務多個數據源只有一個工作
DataBaseConfig
@Configuration
public class DataBaseConfig {
@Bean(name = "ora1")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource mysqlDataSource() {
return DataSourceBuilder.create().build();}
@Bean(name = "ora2")
@ConfigurationProperties(prefix="spring.secondDatasource")
public DataSource sqliteDataSource() {
return DataSourceBuilder.create().build();}
@Bean(name = "clients")
@Autowired
@ConfigurationProperties(prefix = "spring.datasource")
@Qualifier("datasource")
public JdbcTemplate slaveJdbcTemplate(DataSource datasource) {
return new JdbcTemplate(datasource); }
@Bean(name = "places")
@Autowired
@Primary
@ConfigurationProperties(prefix = "spring.secondDatasource")
@Qualifier("secondDatasource")
public JdbcTemplate masterJdbcTemplate(DataSource secondDatasource) {
return new JdbcTemplate(secondDatasource);}
}
我與SQL語句的服務定義和定義
@Service
public class ClientsService {
@Autowired
@Qualifier("clients")
private JdbcTemplate jdbcTemplate;
和其他服務
@Service
public class PlacesService {
@Autowired
@Qualifier("places")
private JdbcTemplate jdbcTemplate;
然後在每個控制器我有去映射@RequestMapping。當我運行應用程序時,我沒有與連接相關的錯誤,如果我將兩個項目中的Web服務分開,每個都可以正常工作。
而不是@Qualifier(「datasource」)和'@Qualifier(「secondDatasource」)'它應該是@Qualifier(「ora1」)和'@Qualifier(「ora2」)',不應該它? – alfcope
我試過了,但仍然無法正常工作。工作的ws不是被設置爲'Primary'的ws。我得到的web服務'客戶端'的錯誤是ORA-00942:表或視圖不存在,但查詢工作正常(我也有在單獨的項目中的Web服務工作正常) – lorenag83