默认 HikariCP 连接池启动 Spring 引导应用程序

Default HikariCP connection pool starting Spring Boot application

我正在使用版本:2.1。6.RELEASE 形式 Spring 在我的 pom.xml 依赖项中启动。 为了连接到我的数据库,我在 application.properties:

中添加了以下内容
spring.datasource.url= jdbc:postgresql://
spring.datasource.username=
spring.datasource.password=

当检查 postgresql 中的连接数量时:

SELECT * FROM pg_stat_activity;

我每次启动应用程序时都看到恰好建立了 10 个连接。他们几乎都有相同的查询:

SET application_name = 'PostgreSQL JDBC Driver'

有没有办法阻止应用程序建立那么多连接? 我应该自己做池配置吗? 我的 Java- 应用程序中的哪些资源会初始化这些连接?

我唯一能想到的是我使用@Autowired 注释创建 EntityManager,EntityManager 来自:

javax.persistence.EntityManager;

但我读到您应该只关闭在使用 EntityManagerFactory 时建立的连接。注释应关闭连接。

如果您需要更多信息,我可以编辑我的 post

这不是连接泄漏,而是预期的行为。 Spring Boot Data 使用 HikariCP 作为连接池。

您可以将最大池大小配置为 属性。例如:

spring.datasource.hikari.maximum-pool-size=5

HikariCP默认打开10个空闲连接,

Default: 10

您可以覆盖不太推荐的 minimumIdle

HikariCP will make a best effort to add additional connections quickly and efficiently. However, for maximum performance and responsiveness to spike demands, we recommend not setting this value and instead allowing HikariCP to act as a fixed size connection pool. Default: same as maximumPoolSize

maximumPoolSize,但它影响连接池的最大大小

This property controls the maximum size that the pool is allowed to reach, including both idle and in-use connections.

HikariCP 默认最多有 10 个连接。

您可以像这样配置最大池大小:

spring.datasource.hikari.maximum-pool-size=5

要启用跟踪日志:

logging.level.com.zaxxer.hikari.HikariConfig=DEBUG
logging.level.com.zaxxer.hikari=TRACE