我已经开发了两个使用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