You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 后端无需重启应用实现更新的方法咨询

Spring Boot 代码修改无需重启的实现方案

方案1:使用 Spring Boot DevTools(官方推荐,适合绝大多数开发场景)

这是Spring官方提供的免费开发工具,通过监控类路径下的文件变动,在代码编译后自动触发应用上下文的轻量重载,速度比全量重启快5~10倍,默认不会被打入正式生产包,无需担心线上环境误开启问题。
配置步骤如下:

  • 第一步:引入依赖
    Maven项目(pom.xml):
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    
    Gradle项目(build.gradle):
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    
  • 第二步:开启IDE自动编译
    • IDEA用户:打开设置→Build,Execution,Deployment→Compiler,勾选 Build project automatically,再按快捷键Ctrl+Shift+Alt+/选择Registry,勾选compiler.automake.allow.when.app.running
    • Eclipse用户:打开设置→General→Workspace,勾选 Build automatically 即可
  • 第三步(可选):在application.yml/application.properties中自定义监控规则
    spring:
      devtools:
        restart:
          enabled: true
          # 监控的代码目录
          additional-paths: src/main/java
          # 不需要触发重启的静态资源路径
          exclude: static/**,templates/**
    

注意:如果修改的是启动类注解、核心配置类等逻辑,仍需要全量重启应用生效。

方案2:使用 JRebel(商业方案,全场景热加载支持)

如果需要完全无重启的热加载能力,支持修改框架配置、MyBatis Mapper文件、甚至第三方依赖代码,可以选择JRebel方案。无需修改项目代码,只需要在IDE中安装JRebel插件并激活,启动项目时选择JRebel启动,修改代码后按Ctrl+Shift+F9编译即可立即生效,不需要任何重启操作。

注意事项

  • 上述所有热部署方案仅建议在开发环境使用,禁止在生产环境开启,避免出现稳定性、安全性问题
  • 如果使用Docker容器部署开发环境,需要将本地项目的类路径目录挂载到容器对应位置,才能正常触发热加载

内容的提问来源于stack exchange,提问作者mdara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:06:03