【问题标题】:Hikari doesn't read configuration from properties file in SpringBoot projectHikari 不会从 SpringBoot 项目中的属性文件中读取配置
【发布时间】:2020-12-04 14:58:18
【问题描述】:

您好,我在项目中使用 Springboot 和 Hikari 进行数据库连接。 springboot 版本是 2.2.5.RELEASE,Hikari 是 3.4.2。但是,当我运行我的项目时,它总是使用 Hikari 默认配置值,而不是使用我的属性文件中的值。 这是我的属性:

spring.datasource.jdbcUrl=#####
spring.datasource.username=###
spring.datasource.password=###
spring.datasource.hikari.maximumPoolSize=4
spring.datasource.hikari.connectionTimeout=300000

这是我在应用程序配置中的数据源:

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

这是输出: 10:23:19.050 [main] 调试 com.zaxxer.hikari.HikariConfig -maxLifetime......................1800000

10:23:19.050 [main] 调试 com.zaxxer.hikari.HikariConfig - maximumPoolSize.......................10

我错过了什么?

【问题讨论】:

  • 您尝试连接哪个数据库?在 Spring Boot 中,我们不需要通过读取属性来为 DataSource 创建任何 bean。只需在 pom.xml 中正确添加数据库 jar,并在 application.properties 中声明数据库凭据
  • 我连接到 sql db。

标签: java spring-boot hikaricp


【解决方案1】:

您正在覆盖默认的 DataSource 自动配置。以下是正确初始化 hikari 数据源的方法:

@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
HikariDataSource dataSource(DataSourceProperties properties) {
    HikariDataSource dataSource = properties
       .initializeDataSourceBuilder()
       .type(HikariDataSource.class).build();
    if (StringUtils.hasText(properties.getName())) {
        dataSource.setPoolName(properties.getName());
    }
    return dataSource;
}

【讨论】:

    【解决方案2】:

    想通了,只需要在没有'hikari'的属性文件中进行配置:

    spring.datasource.maximumPoolSize=4

    【讨论】:

      猜你喜欢
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 2020-10-11
      • 2013-10-19
      • 1970-01-01
      • 2015-03-13
      相关资源
      最近更新 更多