当前位置: 首页 > 知识库问答 >
问题:

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

孔弘盛
2023-03-14

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

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

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

所以,

  1. 配置第一个数据源

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

但需求需要更改第一个数据源表中的第二个数据源。T、 T型

请给我一些建议。

谢谢你。

共有1个答案

黄凌龙
2023-03-14

像这样的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();
}

我至少可以不在configuration类中使用Spring数据JPA而直接在数据源上操作,以保持简单。

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

以上代码主要来自:https://stackoverflow.com/a/28822145

 类似资料:
  • 我正在集成spring security saml扩展以支持我的web应用程序中的SSO,我的应用程序应允许不同的客户将其IDP元数据和证书添加到我的webapp(这是一个SP),以便我的webapp可以针对其IDP启动SSO。 现在我正在我的java配置中定义一个“元数据”bean,在其中我将idp元数据添加到CachingMetadataManager。但是这种情况只发生一次,我无法弄清楚如何

  • 我通过HiberNate将用户保存在DB表中,我使用Spring Security进行身份验证: 这非常有效,但有一点需要注意:用户在服务器启动时被加载。我需要编写方法RegisterUser(用户用户),在运行时将新用户添加到Spring Security。这种方法应该只关注这项任务。我不知道如何开始实现这个功能,所以谢谢你的建议!;) Ofc用户有登录名、密码、角色字符串等字段。。。 请不要发

  • 如何在文本运行时添加文本分隔符或转到下一行/行?我试着只做

  • 当Java11排除了JavaFX作为最新版本的一部分时,我得到了以下错误。 那么如何在Java11中将JavaFX添加到Eclipse中呢?谢了。

  • 我有一个熊猫数据帧,它被定义为空,然后我想在做一些计算后添加一些行。 我试图做到以下几点: 如果我试着打印并附加到测试显示中 因此,很明显,该行没有被添加到数据帧中。 我希望输出是

  • 我知道ApplicationContext扩展点,如ApplicationContext事件和BeanFactoryPostProcessor。 我手头的问题是,在创建了一些bean之后,我需要添加bean,我想这会丢弃BeanFactoryPostProcessor选项,因为在应用程序上下文开始注册bean之前会发生这种情况。 我尝试在上下文刷新后添加一个singletonBean: