【发布时间】:2021-12-16 08:49:57
【问题描述】:
我有一个基于 spring-boot 的应用程序连接到 postgres DB。它使用默认的 HikariCP 作为 JDBC 连接池。从文档中我看到我们可以配置一个我认为对我们有用的属性 keepALiveTime 但我无法在我的 yml 文件中设置它。看起来是这样的
datasource:
jdbc-url: jdbc:postgresql://x.x.x.x:5433/xxx?sslmode=require&sslcert=/file.crt&sslkey=/tmp/file.key
username: ${JDBC_USERNAME}
password: ${JDBC_PASSWORD}
keepaliveTime: 80000
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate.format_sql: true
hibernate.dialect: org.hibernate.dialect.PostgreSQL81Dialect
hikari:
idle-timeout: 500000
minimum-idle: 10
maximum-pool-size: 15
keepaliveTime: 80000
max-lifetime: 48000
connection-timeout: 180000
所有其他配置都是自动建议的并且可以使用。但是我无法填充 keepAliveTime 选项。虽然我在配置中提供了它,但 Hikari 没有使用它。
【问题讨论】:
-
您使用哪个版本的
HikariCP? seemskeepaliveTime参数是在4.0.0中添加的 -
我正在使用 spring boot 2.3.0-RELEASE 版本的“spring-boot-starter-data-jpa”依赖项。不确定它默认使用哪个 Hikari 版本。有没有办法在春季启动中覆盖它
-
是的,有,但我不推荐。这就是为什么使用 Spring Boot 依赖项,以确保不会遇到不兼容的依赖项版本。
-
我还是想试试它是否有效。我已经从 jpa implementation('org.springframework.boot:spring-boot-starter-data-jpa') { exclude group: 'com.zaxxer', module: 'HikariCP' } 中排除了 HikariCP 依赖项,并添加了对 Higher HikariCP 的依赖项-> 'com.zaxxer:HikariCP:4.0.3' 我仍然在我的应用程序中获得 3.4.5 的 HIkariCP。在检查依赖关系树时,我在 +--- com.zaxxer:HikariCP:3.4.5 (c) in spring-boot-starter-web dependency 中看到了一个约束。是因为这个吗?
标签: postgresql spring-boot jdbc hikaricp