Spring Boot:如何在运行时添加新的数据源

时间:2018-06-26 09:58:14

标签: java spring spring-boot jpa spring-data-jpa

Spring Boot:如何在运行时添加新数据源

我的项目想要连接两个数据源。

我可以在application.properties中配置第一个数据源,但不能配置第二个数据源,因为此配置位于第一个数据源的DB的tableConfig中。

所以

  1. 配置第一个数据源。
  2. 从第一个数据源查询数据以获取第二个数据源的配置(URL,用户名,密码)。
  3. 添加新的第二个数据源

现在,我从application.properties配置两个数据源,并且它可以正常工作。

但是要求要从第一数据源表更改第二数据源。 T.T

请给我一些建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

这样的Spring配置应该可以工作(考虑一下伪代码):

@Bean("secondDatasource")
public Datasource secondDatasource(@Qualifier("firstDatasource") Datasource ds){
    // use `ds` to obtain the necessary information to obtain a datasource ...
    return DataSourceBuilder
        .create()
        .username(username)
        .password(pwd)
        .url(url)
        .driverClassName(driver)
        .build();
}

我至少会在不使用配置类中使用Spring Data JPA的情况下开始,并直接在数据源上进行操作以简化操作。

您已经获得了有关如何设置Spring Data JPA以便随后使用不同数据源的指针:http://www.baeldung.com/spring-data-jpa-multiple-databases

上面的代码主要是从以下位置复制:https://stackoverflow.com/a/28822145