Spring Boot 热部署需配置 devtools 依赖、启用 fork 模式、开启 IDEA 自动编译及运行时构建,并可选配置模板与静态资源缓存禁用,修改后 1–3 秒内重启生效。

Spring Boot 热部署不是“一键开启”的魔法,而是 IDEA 编译机制与 Spring Boot DevTools 协同工作的结果。核心在于:让代码保存后自动编译,再触发 DevTools 的轻量级重启,跳过冷启动的耗时环节。配置到位,改完 Java 文件或配置文件,1–3 秒内就能在浏览器看到效果。
添加 devtools 依赖并启用 fork
这是后端热部署的基础。仅加依赖不够,必须确保 Maven 插件支持 fork 模式,否则 DevTools 不会生效。
- 在 pom.xml 的
<dependencies></dependencies>中加入:
- 在 pom.xml 的
<build><plugins></plugins></build>中确认存在(或补充):
-
<optional>true</optional>防止 devtools 打包进生产 JAR;<fork>true</fork>是关键,它让应用在独立子进程中运行,DevTools 才能安全地替换类加载器。
配置 IDEA 自动编译与运行时构建
IDEA 默认不会在程序运行时自动编译,必须手动打开两个开关,否则保存代码后 DevTools 根本收不到新 class 文件。
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
- 打开 File → Settings → Build, Execution, Deployment → Compiler,勾选 Build project automatically
- 按快捷键 Ctrl + Shift + Alt + /(Windows/Linux)或 Cmd + Shift + Option + /(macOS),调出 Registry 窗口
- 搜索 compiler.automake.allow.when.app.running,勾选它
- 完成设置后建议重启 IDEA,确保配置生效
模板与静态资源热更新(可选但推荐)
Thymeleaf、FreeMarker 等模板默认开启缓存,HTML/CSS/JS 修改后不刷新页面看不到效果。DevTools 虽默认禁用部分缓存,但显式配置更可靠。
- 在 application.properties 中添加:
spring.freemarker.cache=false
spring.resources.cache.period=0
spring.web.resources.cache.period=0
- 如果使用 Vue/React 前端分离开发,静态资源通常走 webpack dev server,无需此配置;若前端资源直接放在
src/main/resources/static下,则上述配置有效
验证与常见问题处理
配置完成后,启动应用,修改一个 Controller 的返回字符串,保存文件,观察控制台是否快速打印出 “Restarting” 日志(非 “Started”)。若无反应,优先检查以下三点:
- IDEA 右下角是否弹出 “Compiler auto-make is turned off” 提示?如有,点击启用
- 项目是否处于 Maven 项目结构?非 Maven 项目需手动配置 output path 指向
target/classes - Chrome 浏览器可能缓存 HTML 或 JS,可尝试 Ctrl+F5 强刷,或打开开发者工具 → Network → 勾选 Disable cache

















