From 6c60b0116ff14bf4983e63d728c6d74ec12565b0 Mon Sep 17 00:00:00 2001 From: yukaidi Date: Fri, 29 May 2026 00:32:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(resource):=20JDBCPoolInit=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=20AutoCloseable=20=E6=B7=BB=E5=8A=A0=20close()=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原代码单例模式无关闭方法,应用退出时数据库连接池无法释放。 改为: - 实现 AutoCloseable 接口 - 添加 close() 方法关闭连接池 - 关闭后将 pool 置 null 防止重复关闭 --- .../main/java/cn/qaiu/db/pool/JDBCPoolInit.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java b/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java index b22039f..12e89ab 100644 --- a/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java +++ b/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java @@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory; * * @author QAIU */ -public class JDBCPoolInit { +public class JDBCPoolInit implements AutoCloseable { private static final Logger LOGGER = LoggerFactory.getLogger(JDBCPoolInit.class); @@ -101,4 +101,16 @@ public class JDBCPoolInit { synchronized public JDBCPool getPool() { return pool; } + + /** + * 关闭连接池,释放数据库资源 + */ + @Override + public synchronized void close() { + if (pool != null) { + pool.close(); + LOGGER.info("数据库连接池已关闭: URL={}", url); + pool = null; + } + } }