Skip to content

1. 简介

热部署是指在应用正在运行时对其进行升级或修改,而无需停止应用的特性

Spring Boot为热部署允许开发者在不重启整个应用的情况下,单独刷新或替换 Java 类文件或静态资源内容。

  • 这种能力极大地提高了开发效率,因为频繁的重启服务器会带来不必要的延迟和维护成本

spring-boot-devtools: 该模块还包括对快速应用程序重启的支持, 在不重新启动容器的情况下重新加载模板

  • 对于更完整的解决方案: JRebel 可使用。

2. 添加依赖

xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

注意事项

  • Devtools 可能会导致类加载问题,尤其是在多模块项目中。 诊断类加载问题说明如何诊断和解决这些问题。
  • 生产环境 不建议使用!!! 请排除依赖项或设置 -Dspring.devtools.restart.enabled=false 系统属性。
shell
java -jar -Dspring.devtools.restart.enabled=false appliaction.jar

3. 自动热部署

  • IDEAsetting 设置中,勾选自动编译。

  • 在启动的 spring Boot 项目设置, 离开 IDEA 后,更新重新加载类信息或静态资源。

4. 手动热部署

  • IDEA 中,点击 重新构建,会重新加载类但无法加载静态资源,需要手动重启服务。

5. 视频演示