最近敲项目发现任何的改动,重新编译后执行会导致报一些奇怪的错误,包括不限于类找不到、类型异常等等。
而且重启依旧如此,只能 mvn clean install 后启动应用才正常。
观察日志,修改代码编译后,devtools 会重启应用,没任何有价值的日志,跟正常启动差不多,打开 debug 日志,交给 gemini 分析:
您的项目中存在某个组件(很可能是一个我们没找到的、行为不当的自定义线程池或第三方库),这个组件导致了 Spring 应用上下文 无法被干净地关闭。
* 当 DevTools 尝试进行 Restart 时,它在这个“关闭上下文”的步骤上失败了(正如我们日志中看到的,数据库连接池没有被关闭),导致整个应用处于一种“僵尸”状态。
尝试找了项目中可能未正确关闭的代码,线程池、threadlocal 等等,还有第三方依赖,这属实范围难度有点大,索性就把 devtool 注释了。
关闭后,通过 idea 的自动编译,反而可以正常工作了。
这个 devtool 是我没有使用好吗,搜了下主要是自动重启、静态资源刷新(前后端分离直接忽略)
环境:idea 最新版,jdk17 ,springboot 最新版
而且重启依旧如此,只能 mvn clean install 后启动应用才正常。
观察日志,修改代码编译后,devtools 会重启应用,没任何有价值的日志,跟正常启动差不多,打开 debug 日志,交给 gemini 分析:
您的项目中存在某个组件(很可能是一个我们没找到的、行为不当的自定义线程池或第三方库),这个组件导致了 Spring 应用上下文 无法被干净地关闭。
* 当 DevTools 尝试进行 Restart 时,它在这个“关闭上下文”的步骤上失败了(正如我们日志中看到的,数据库连接池没有被关闭),导致整个应用处于一种“僵尸”状态。
尝试找了项目中可能未正确关闭的代码,线程池、threadlocal 等等,还有第三方依赖,这属实范围难度有点大,索性就把 devtool 注释了。
关闭后,通过 idea 的自动编译,反而可以正常工作了。
这个 devtool 是我没有使用好吗,搜了下主要是自动重启、静态资源刷新(前后端分离直接忽略)
环境:idea 最新版,jdk17 ,springboot 最新版