2.9 KiB
在上小节 中,我们通过一个小示例,演示了如何在项目中通过 Nacos , 实现动态加载 Bean 功能。但是,小伙伴们有没有发现一个问题,那就是,当在 Nacos 后台修改了配置并发布后,项目中监听配置刷新前,出现了 Druid 连接池被关闭了的日志,如下图所示:
确认 Druid 连接池是否被关闭
为了验证 Druid 连接池是否真的被关闭了,我们通过 Apipost 请求 /login 登录接口验证一下,因为这个接口需要进行数据库查询操作:
果然,接口提示出错了, 再观察一下控制台日志,如下图所示,可以看到已经无法拿到数据库链接了,提示连接池已经被关闭了:
尝试找解决方案
由于咱们使用的是 Spring Boot 3.x 版本,对应的 Spring Cloud Alibaba 组件版本也会比较新。直接在搜索引擎中,搜索这个报错时,能够查的文档有限。这个时候,不妨访问 Druid GitHub 仓库官方地址:https://github.com/alibaba/druid ,点击 Issues 栏:
尝试在官方 Issues 中搜索关键词,如 Nacos , 看看有没有其他小伙伴也遇到这种错误:
如上图所示,果不其然,真的有人遇到了同样的问题 !查看链接详情:https://github.com/alibaba/druid/issues/5740 ,看看有没有解决方案:
Druid 官方给出的方案是,切换到 1.2.22 版本,再进行验证。
查看 Druid 最新版本
访问 Maven 中央仓库,找到 Druid Spring Boot Starter 库:https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter ,看一下最新的版本号:
如上图所示,最新的版本已经到 1.2.23 了,索性,咱们直接切换到最新版本,防止还有别的已经被官方修复的 Bug 发生。
切换 Druid 版本
编辑项目最外层的 pom.xml 文件,将 druid.version 改为最新的 1.2.23 版本:
<properties>
// 省略...
<druid.version>1.2.23</druid.version>
// 省略...
</properties>
并点击右侧栏的 Reload 按钮,重新刷新一下 Maven 依赖,将 1.2.23 版本依赖下载到本地仓库中:
重启项目,再次验证 Nacos 发布配置后,Druid 连接池被关闭问题,发现问题没有再出现了。