我在我的pom.xml依赖项中使用版本:2.1.6.RELEASE形式的Spring Boot。 为了连接到我的数据库,我在 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注释创建了实体管理器,实体管理器来自:
javax.persistence.EntityManager;
但我读到你应该只关闭使用实体管理器工厂时建立的连接。批注应关闭连接。
如果您需要更多信息,我可以编辑我的帖子
HikariCP 默认打开 10 个空闲连接,
默认值:10
您可以覆盖不太推荐的 minimumIdle
HikariCP将尽最大努力快速有效地添加其他连接。但是,为了获得最佳性能和对峰值需求的响应能力,我们建议不要设置此值,而是允许 HikariCP 充当固定大小的连接池。默认值:与最大池大小相同
或最大池大小,但它会影响连接池的最大大小
此属性控制允许池达到的最大大小,包括空闲连接和使用中的连接。
这不是连接泄漏,而是所需的行为。Spring Boot Data 使用 HikariCP 作为连接池。
可以将最大池大小配置为属性。例如:
spring.datasource.hikari.maximum-pool-size=5
默认情况下,HikariCP 最多有 10 个连接。
您可以按如下方式配置最大池大小:
spring.datasource.hikari.maximum-pool-size=5
要启用跟踪日志,请执行以下操作:
logging.level.com.zaxxer.hikari.HikariConfig=DEBUG
logging.level.com.zaxxer.hikari=TRACE