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在运行时连接多个数据库并选择表