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

2个具有不同数据源配置的Hikari CPs?

尉迟阳煦
2023-03-14

有人成功地在Spring Boot应用程序中配置了两个具有不同数据源的hikari连接池吗?如何使用application.properties来完成?

共有1个答案

袁开宇
2023-03-14

我知道这是很久以前就问过的,但我认为这可能会对其他人有所帮助。此外,我不认为上面提到的“可能的重复”回答了这个问题。

我在Maven中使用spring boot 2.0.4。而不是像使用一个db时那样为hikary设置专用范围。

  datasource:
      hikari:
            connection-test-query: SELECT 1 FROM DUAL
            minimum-idle: 1
            maximum-pool-size: 2
            pool-name: some-pool-name

您可以使用所需的设置,并将其直接放在db范围内,例如:

spring:
    datasource:
        db1:
            type: com.zaxxer.hikari.HikariDataSource
            maximum-pool-size: 2
            minimum-idle: 1
            pool-name: db1-pool
            connection-test-query: SELECT 1 FROM DUAL
            jdbc-url: jdbc:mysql://${host1}:${port1}/${db1}
            username: ${db1-user}
            password: ${db1-pass}
            driver-class-name: com.mysql.cj.jdbc.Driver
        db2:
            type: com.zaxxer.hikari.HikariDataSource
            maximum-pool-size: 2
            minimum-idle: 1
            pool-name: db2-pool
            connection-test-query: SELECT 1 FROM DUAL
            jdbc-url: jdbc:mysql://${host2}:${port2}/${db2}
            username: ${db2-user}
            password: ${db2-pass}
            driver-class-name: com.mysql.cj.jdbc.Driver

然后在java配置文件中:

@Configuration
public class AppConfiguration {

....

    @Bean("db1")
    @ConfigurationProperties(prefix = "spring.datasource.db1")
    public DataSource firstDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean("db2")
    @ConfigurationProperties(prefix = "spring.datasource.db1")
    public DataSource secondDataSource() {
        return DataSourceBuilder.create().build();
    }
}
 类似资料:
  • 在Springboot中有两个不同的@RestController使用不同的MappingJackson2HttpMessageConverter吗?...或者MappingJackson2HttpMessageConverter对于Spring Boot应用程序中的所有@RESTController是通用的吗? 基本上,目标是使用不同的MappingJackson2HttpMessageConv

  • null 如何使用Spring Batch配置JTA/XA事务(Atomikos)?

  • Spring配置:我创建了2个bean,引用了相同的类但不同的数据库会话。 现在有没有办法将id为“abc1”的bean设置为用于自动装配的默认bean,并在像这样明确提到时使用abc2进行自动装配: 解决方案: 使abc1默认为自动连接。 为了创建abc2的实例,我们可以使用:

  • 我想用不同的布局定义2个不同的log4j控制台。我尝试了以下方法: 然而,当我尝试使用这些appender时,我遇到了问题。我将第一个appender连接到root,然后尝试将第二个appender连接到某些祖先记录器: 我遇到的麻烦是,来自这两个祖先记录器的消息最终会转到stdout appender,而不是stdoutMDC appender。我尝试了禁用和不禁用相加,但没有区别。 有什么想法

  • 问题内容: 我创建了一个小部件,该小部件显示一个简单的textview,可在配置活动中将其作为Edittext编辑。我将输入的文本与共享的首选项一起保存,因此用户可以点击小部件来编辑文本,并且已经输入的文本将出现在edittextfield中。我的问题是这个。我希望用户能够添加多个窗口小部件,但是当添加第二个窗口小部件时,将从共享首选项中加载与其他窗口小部件中相同的文本。并且,当在widget上被

  • 如何创建具有应用程序属性中提到的多个数据源配置的单个配置 java 文件,以便在添加任意“n”个数据源时。它必须使用相同的配置文件自动处理所有数据源。 此外,所有数据源必须使用相同的 JPARepository 来查询数据。此外,我想创建一个实体管理器列表,以对特定数据源执行特定操作。 application.properties 站点配置.java 这是单个数据源配置文件的基本示例。我想以“si