【问题标题】:HikariCP not using settings from Spring Boot's application.propertiesHikariCP 不使用 Spring Boot 的 application.properties 中的设置
【发布时间】:2017-11-04 09:48:06
【问题描述】:

我使用的是 Spring Boot 1.5.3,并在 application.properties 中为 HikariCP 添加了以下设置:

spring.datasource.hikari.data-source-properties.prepStmtCacheSize=250
spring.datasource.hikari.data-source-properties.prepStmtCacheSqlLimit=2048
spring.datasource.hikari.data-source-properties.cachePrepStmts=true
spring.datasource.hikari.data-source-properties.useServerPrepStmts=true

spring.datasource.hikari.minimum-idle=7
spring.datasource.hikari.pool-name=Test-1

但是一旦我启动 Spring Boot,pool-name 和 minimum-idle 的值是不同的:

[DEBUG]  HikariConfig - jdbcUrl........................."jdbc:mysql://localhost:3306/test?autoReconnect=true"
[DEBUG]  HikariConfig - leakDetectionThreshold..........0
[DEBUG]  HikariConfig - maxLifetime.....................1800000
[DEBUG]  HikariConfig - maximumPoolSize.................10
[DEBUG]  HikariConfig - metricRegistry..................none
[DEBUG]  HikariConfig - metricsTrackerFactory...........none
[DEBUG]  HikariConfig - minimumIdle.....................10
[DEBUG]  HikariConfig - password........................<masked>
[DEBUG]  HikariConfig - poolName........................"HikariPool-1"

【问题讨论】:

  • 我也有同样的问题。您找到问题的答案了吗?

标签: spring-boot hikaricp


【解决方案1】:

你配置你的 Bean 了吗?:

@Configuration
public class HikariCPConfig {

@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public HikariConfig hikariConfig() {
    return new HikariConfig();
}

@Bean
public DataSource dataSource() {
    return new HikariDataSource(hikariConfig());
}

}

【讨论】:

  • 谢谢!我以为我不需要指定 HikariConfig bean。然而,在添加了这个 bean 之后,我不得不从我的 application.properties 中删除 spring.datasource.url、spring.datasource.username、spring.datasource.password 并使用 spring.datasource.hikari.jdbc-url、spring.datasource。 hikari.username 和 spring.datasource.password 代替。
  • 这是正确的,请确保您还添加了属性:datasource.hikari.driverClassName=com.mysql.jdbc.Driver
  • 应该不需要这里显示的任何一个bean。 Spring Boot 将使用 application.properties 中的设置为您自动配置 Hikari。
  • 你是绝对正确的,@Andy!我忘了提到我有两个导致我的问题的数据源。如果您能检查我的解决方法是否是处理我的问题的最佳方法,我会很高兴:new question
  • @AndyWilkinson 有人请,建造这个人的雕像。非常感谢。