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

Posted

技术标签:

【中文标题】Spring Boot:如何在运行时添加新的数据源【英文标题】:Spring Boot : How to add new Datasource at runtime 【发布时间】:2018-12-05 00:09:36 【问题描述】:

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

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

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

所以,

    配置第一个数据源。 从第一个数据源查询数据以获取第二个数据源的配置(url、用户名、密码)。 添加新的第二个数据源

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

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

请给我一些建议。

谢谢。

【问题讨论】:

你可以从application.properties配置2个数据源 试试这个baeldung.com/spring-data-jpa-multiple-databases Spring Boot Configure and Use Two DataSources的可能重复 现在我从 application.properties 配置了 2 个数据源,它可以工作了。但是要求要从第一个数据源表中更改第二个数据源。 T.T 【参考方案1】:

这样的 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://***.com/a/28822145

【讨论】:

以上是关于Spring Boot:如何在运行时添加新的数据源的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 应用程序中将用户添加到嵌入式 tomcat?

我可以使用 Spring Boot 在正在运行的应用程序上添加数据库连接吗?

如何使用新的spring-boot JAR重新启动容器而没有jar的绝对路径?

spring boot java在运行时连接多个数据库并选择表

Spring boot和MongoDB中如何根据产品选择在运行时选择数据库?

将spring boot应用程序用作unix服务时如何调整jvm