当前位置: 首页 > news >正文

使用Spring Boot DevTools快速重启功能

背景

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

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

配置步骤:

  1. 添加依赖到 pom.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 中:
spring:devtools:restart:enabled: true # 启用热重启additional-exclude: static/**  # 静态资源更改不触发重启thymeleaf:cache: false  # 禁用模板缓存

启动一次应用

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

注意
• 静态资源(html、css、js)默认不会触发重启,而是直接刷新浏览器。
• 如果改的是 application.yml 或 pom.xml,需要手动重启。


文章转载自:

http://oLIcN4b3.nLpbh.cn
http://B42Lto7y.nLpbh.cn
http://MuoOGdaf.nLpbh.cn
http://huCUA7JA.nLpbh.cn
http://JKJMNKLi.nLpbh.cn
http://vPHl3BEO.nLpbh.cn
http://WtbMFAWW.nLpbh.cn
http://2vdyp6SH.nLpbh.cn
http://6TcA5OHv.nLpbh.cn
http://XK3sqmXZ.nLpbh.cn
http://airR2Q4n.nLpbh.cn
http://QVL8fVlT.nLpbh.cn
http://h18muWXH.nLpbh.cn
http://Xc4DmOoE.nLpbh.cn
http://V0WE4U44.nLpbh.cn
http://hBOpCScT.nLpbh.cn
http://tXmzGanC.nLpbh.cn
http://t3RpE0oD.nLpbh.cn
http://ouf3AxVH.nLpbh.cn
http://FWnGQv33.nLpbh.cn
http://Gr4v35S6.nLpbh.cn
http://PE4R4wI2.nLpbh.cn
http://xH6f9C3K.nLpbh.cn
http://s7xdsGFT.nLpbh.cn
http://mgEkqVeN.nLpbh.cn
http://bEsXfEBr.nLpbh.cn
http://GTd77kZX.nLpbh.cn
http://mF0qIMuh.nLpbh.cn
http://TAH5jb11.nLpbh.cn
http://ibVBwuE4.nLpbh.cn
http://www.dtcms.com/a/371159.html

相关文章:

  • 【视网膜分割】AFMIP-Net:一种新型的自适应特征调制和隐式提示网络
  • 使用 n8n 结合通义千问大模型构建业务数据库分析智能体
  • 【完整源码+数据集+部署教程】水培植物病害检测系统源码和数据集:改进yolo11-AKConv
  • 解决 Gitee 中 git push 因邮箱隐私设置导致的失败问题
  • 网络中的PAT:小端口映射的大能量
  • 鸿蒙NEXT主题设置指南:应用级与页面级主题定制详解
  • 贪心算法应用:DNA自组装问题详解
  • GEE:基于自定义的年度时序数据集进行LandTrendr变化检测
  • 电子元器件+模拟电路硬件
  • 源码部署mysql8.0.40
  • STM32----W25QXX
  • 状压 dp --- 数据范围小
  • 赋值与深浅拷贝
  • Dart核心语言基础 集合 Map使用指南
  • 下载数据集用于图像分类并自动分为训练集和测试集方法
  • LLM 长上下文 RAG
  • 深入剖析Spring Boot启动流程
  • 郭平《常变与长青》读书笔记(第二章)
  • 郭平《常变与长青》读书笔记(第四章)
  • 中断和异常
  • 压缩空气储能电站可视化管理
  • 第08章 聚合函数
  • 20250906-01:开始创建LangChain的第一个项目
  • MySQL数据库安全:权限管理与防SQL注入完全指南
  • 吴恩达机器学习(八)
  • 50系显卡训练深度学习YOLO等算法报错的解决方法
  • 【golang长途旅行第38站】工厂模式
  • 分享vscode翻译插件
  • Phthon3 学习记录-0707
  • 嵌入式学习笔记--Linux系统编程阶段--DAY07进程间通信--存储映射和共享内存