使用Spring Boot DevTools快速重启功能

背景

在Spring Boot项目中,修改一些简单的代码后,每次手动终止并启动整个项目比较繁琐且消耗时间。Spring Boot DevTools 提供了开发时的热重启功能,使得在开发过程中修改代码后可以快速生效,而无需手动重启整个应用,可以大幅减少重启时间。

Spring Boot DevTools:这是Spring Boot提供的开发工具,它能够监控类路径上的变化,并自动重启应用。但请注意,它并不是真正的热部署(即不需要任何重启),而是通过快速重启(Restart)来加载更改。它使用两个类加载器来实现快速重启,对于静态资源和模板文件的更改,只需要刷新浏览器即可看到变化。

配置步骤:

  1. 添加依赖到 pom.xml:
xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>
  1. 在 IDEA 中开启自动编译:
  • 打开设置 → Build, Execution, Deployment → Compiler
  • 勾选 "Build project automatically"
  1. 开启 IDEA 的自动编译支持:
  • 按 Ctrl+Shift+Alt+/ (Windows) 或 Cmd+Shift+Option+/ (Mac)
  • 选择 "Registry"
  • 勾选 "compiler.automake.allow.when.app.running"

注意:

新版 IntelliJ IDEA(2021.2 以后)里把compiler.automake.allow.when.app.running 这个选项从 Registry 移到了 Advanced Settings,所以当 Ctrl + Shift + Alt + / 打开 Registry 时搜不到就按一下做法:

(1)打开 Settings / Preferences

  • Windows:File → Settings
  • macOS:IntelliJ IDEA → Preferences
    (2)左侧菜单选择 Advanced Settings(在最下面)
    (3)在右侧找到Allow auto-make to start even if developed application is currently running,把它勾上即可
  1. 应用配置
    在 application.yml 或 application.properties 中:
yaml 复制代码
spring:
  devtools:
    restart:
      enabled: true # 启用热重启
      additional-exclude: static/**  # 静态资源更改不触发重启
  thymeleaf:
    cache: false  # 禁用模板缓存

启动一次应用

以后在 IDE 里 Ctrl+S 保存代码,Devtools 会监听 classpath 变化 → 自动重启(Restart 是秒级,比冷启动快很多)。

注意

• 静态资源(html、css、js)默认不会触发重启,而是直接刷新浏览器。

• 如果改的是 application.yml 或 pom.xml,需要手动重启。

相关推荐
铁皮饭盒1 小时前
成为AI全栈 - 第3课:路由 RESTful Elysia 状态码 设计规范
前端·后端·全栈
我叫黑大帅1 小时前
如何通过 Python 实现招聘平台自动投递
后端·python·面试
狼爷1 小时前
短视频播放量(Views)计数系统实现方案:高并发、不丢数的工业级实践
后端·架构
JWASX1 小时前
【RocketMQ 生产者和消费者】- 事务源码分析(1)
java·rocketmq·java-rocketmq
AlunYegeer2 小时前
JAVA,以后端的视角理解前端。在全栈的路上迈出第一步。
java·开发语言·前端
苍何2 小时前
我用 Tabbit 浏览器搭了一套内容创作全自动流水线,太香了!
后端
苍何2 小时前
全网首测,TRAE SOLO 的 AI 麦克风!
后端
IT_陈寒3 小时前
Redis这个内存杀手,差点让我们运维半夜追杀我
前端·人工智能·后端
苍何3 小时前
用 Agent 团队来做知识管理,非常顶!
后端
苍何3 小时前
WPS多维表格,给开发者铺了条新路!
后端