V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JYii
V2EX  ›  Java

请教关于 spring-boot-devtools 的问题

  •  
  •   JYii · 9 天前 · 1280 次点击
    最近敲项目发现任何的改动,重新编译后执行会导致报一些奇怪的错误,包括不限于类找不到、类型异常等等。

    而且重启依旧如此,只能 mvn clean install 后启动应用才正常。

    观察日志,修改代码编译后,devtools 会重启应用,没任何有价值的日志,跟正常启动差不多,打开 debug 日志,交给 gemini 分析:

    您的项目中存在某个组件(很可能是一个我们没找到的、行为不当的自定义线程池或第三方库),这个组件导致了 Spring 应用上下文 无法被干净地关闭。
    * 当 DevTools 尝试进行 Restart 时,它在这个“关闭上下文”的步骤上失败了(正如我们日志中看到的,数据库连接池没有被关闭),导致整个应用处于一种“僵尸”状态。

    尝试找了项目中可能未正确关闭的代码,线程池、threadlocal 等等,还有第三方依赖,这属实范围难度有点大,索性就把 devtool 注释了。
    关闭后,通过 idea 的自动编译,反而可以正常工作了。

    这个 devtool 是我没有使用好吗,搜了下主要是自动重启、静态资源刷新(前后端分离直接忽略)

    环境:idea 最新版,jdk17 ,springboot 最新版
    9 条回复    2025-07-05 11:29:25 +08:00
    ChaYedan666
        1
    ChaYedan666  
       9 天前   ❤️ 1
    没必要纠结在这个上面了,一堆坑🤮。idea 本身现在也自带修改代码后会提示你是不是需要应用热更新,大部分情况下确实没问题,但一旦出问题,第一时间完全想不到,浪费时间找半天排坑。
    就正常重新编译重启得了,顺便起来活动活动筋骨
    Romic
        2
    Romic  
       9 天前
    spring-boot-devtools 基本不用,都是直接重启,热更新 掌握不了。
    newaccount
        3
    newaccount  
       9 天前
    前阵子刚从 POM 里删掉
    原本就没啥用,还遇到了跟 redis 一起用的时候报错,不想折腾
    worldgg
        4
    worldgg  
       9 天前
    devtool 踩过坑,早就不用了,上班因为 devtool 的问题 只会浪费自己的时间,得不偿失
    oneisall8955
        5
    oneisall8955  
       9 天前
    还是习惯 Ctrl + Shift +F9
    cookii
        6
    cookii  
       9 天前
    可能是因为项目代码没有遵从 spring 的最佳实践。
    loong95
        7
    loong95  
       9 天前 via iPhone
    不如用 jrebel
    cvbnt
        8
    cvbnt  
       9 天前 via Android
    没 jrebel 好用
    totoro52
        9
    totoro52  
       8 天前
    从不用 devtool 这玩意,每次都提示我安装,烦死了 jrebel 秒杀
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:50 · PVG 09:50 · LAX 18:50 · JFK 21:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.