spring boot devtools 的核心作用是加速重启而非免重启,可将重启时间压缩至2–4秒,仅重载修改的代码并自动排除第三方jar;需配置runtime+optional依赖、idea自动编译、debug启动及livereload支持。

Spring Boot DevTools 的核心作用不是“免重启”,而是让重启快、准、省力——它把原本需要 20 秒以上的手动重启,压缩到 2–4 秒内完成,并自动跳过第三方依赖重载。关键在于:它只重载你改的代码,不碰 Spring、MyBatis、Lombok 这些 jar 包。
添加依赖并确保生效
在 pom.xml 中加入 DevTools 依赖,必须用 runtime 作用域 + optional=true:
<dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-devtools</artifactid><scope>runtime</scope><optional>true</optional></dependency>
Gradle 用户写:developmentOnly 'org.springframework.boot:spring-boot-devtools'。打包时 Maven 插件会自动排除它,生产环境无需额外操作。
⚠️ 注意:若使用 Spring Boot Maven 插件,需开启 <fork>true</fork>(否则类加载器隔离失效,DevTools 不工作)。
IDEA 配置要点(2023.3+ 版本适用)
新版 IDEA 已移除 Registry 中的 automake 开关,正确配置分三步:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- Settings → Build, Execution, Deployment → Compiler → 勾选 Build project automatically
- Settings → Advanced Settings → 勾选 Allow auto-make to start even if developed application is running
- 运行项目时,务必用 Debug 模式启动(非 Run),否则增量编译不触发
验证是否生效:改一个 Controller 的返回值,保存后看控制台是否出现 Restarting context... 日志,而不是全量 shutdown → startup。
提速与避坑的关键配置
默认行为已够用,但中大型项目建议在 application-dev.properties 中微调:
-
spring.devtools.restart.poll-interval=2000(Windows 下设为 2 秒,避免 NTFS 文件锁误判) -
spring.devtools.restart.exclude=static/**,templates/**,config/**(静态资源改了不重启,靠 LiveReload 刷新) -
spring.thymeleaf.cache=false、spring.resources.cache-period=0(模板和静态资源即时生效) - 加日志开关快速定位问题:
logging.level.org.springframework.boot.devtools=DEBUG
LiveReload 让前端修改秒见效果
DevTools 内置 LiveReload 服务器,改完 HTML/CSS/JS 后:
- 浏览器安装 LiveReload 扩展(Chrome 商店搜 “LiveReload”)
- 点击扩展图标启用监听(页面右上角图标变亮)
- 保存文件,浏览器自动刷新,无需手动 F5
注意:同一台机器只能有一个 DevTools 实例启用 LiveReload;若启动多个服务,只有第一个能触发自动刷新。










