SpringBoot热部署

简介: 在日常开发中,我们需要经常修改 Java 代码,手动重启项目,查看修改后的效果。如果项目还比较小,重启速度比较快,等待的时间是较短的。但是随着项目逐渐变大,重启的速度变慢,等待时间越来越长,我们的效率就很低下。Spring Framework 提供了热部署(Hot Reload)功能,允许在开发过程中无需重启应用程序就能实时地修改代码并看到更改效果。这对于提高开发效率非常有帮助。

前言

在日常开发中,我们需要经常修改 Java 代码,手动重启项目,查看修改后的效果。如果项目还比较小,重启速度比较快,等待的时间是较短的。但是随着项目逐渐变大,重启的速度变慢,等待时间越来越长,我们的效率就很低下。Spring Framework 提供了热部署(Hot Reload)功能,允许在开发过程中无需重启应用程序就能实时地修改代码并看到更改效果。这对于提高开发效率非常有帮助。以下是常见的几种热部署方式:

一、spring-boot-devtools

spring-boot-devtools (opens new window)是 Spring Boot 提供的开发者工具,它会监控当前应用所在的 classpath 下的文件发生变化,进行自动重启。

添加热部署框架支持

在pom.xml中添加如下框架引用

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

settings 开启项目自动编译

image.png

开启运行中热部署

image.png

使用Debug启动

image.png

二、IDEA 自带 HowSwap 功能

该功能是 IDEA Ultimate 旗舰版的专属功能,不支持 IDEA Community 社区版。

设置 Spring Boot 启动类

image.png
image.png

等待项目启动完成

点击热加载按钮

每次修改 Java 代码后,点击左下角的「热加载」按钮,即可实现代码热加载
image.png

存在的问题

IDEA 自带 HowSwap 功能,支持比较有限,很多修改都不支持。

  • 只能增加方法或字段但不可以减少方法或字段
  • 只能增加可见性不能减少
  • 只能维持已有方法的签名而不能修改等等。

    三、JRebel 插件【推荐】

    JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版

    安装插件

  1. 点击JRebel插件地址,下载2022.4.1版本
    image.png

  2. 打开 [Preference -> Plugins] 菜单,点击「Install Plugin from Disk...」按钮,选择刚下载的 JRebel 插件的压缩包,安装完成后,需要重启 IDEA 生效。
    image.png

  3. 打开 [Preference -> JRebel & XRebel] 菜单,输入 GUID address 为 https://jrebel.qekang.com/1e67ec1b-122f-4708-87d0-c1995dc0cdaa,邮件随便写,完成 JRebel 的激活。
    image.png

  4. 点击「Work Offline」按钮,设置 JRebel 为离线,避免因为网络问题导致激活失效。
    image.png

点击「Debug With JRebel」按钮,使用 JRebel 启动项目。
image.png

每次修改 Java 代码后,点击左下角的「热加载」按钮,即可实现代码热加载
image.png

相关文章
|
JSON Java 数据格式
SpringBoot热部署详解
SpringBoot热部署详解
SpringBoot热部署详解
|
7月前
|
Java Maven 开发者
【SpringBoot】springboot启动热部署
【SpringBoot】springboot启动热部署
53 0
|
监控 IDE Java
SpringBoot实现热部署两种方式!
小宅作为一个Java程序员,在日常的工作中,经常需要修改代码,然后重启服务,在验证代码是否生效。如果是小项目还好,重启速度比较快,等待时间比较短。但是随着项目逐渐变大,并且被拆分成多个服务时,改动一些代码,可能需要重启多个服务才能生效。这样下来就耗费了大量的时间在等待服务重启。 这样肯定是不行的,极大的影响了我的开发效率,那么是否有方式能够实现,修改完代码之后,能够不重启项目呢?
SpringBoot实现热部署两种方式!
|
前端开发 JavaScript Java
Springboot整合Thymeleaf并详解热部署
Springboot整合Thymeleaf并详解热部署
539 0
|
Java Maven 开发工具
SpringBoot项目热部署
IntelliJ IDEA开发工具 1.需要在pom.xml文件中加入以下依赖。 2.在File-->Setting-->Compiler下面,将Build project automatically
130 0
SpringBoot项目热部署配置
SpringBoot项目热部署配置
SpringBoot项目热部署配置
|
监控 IDE Java
【SpringBoot2】开发实用篇-热部署
简单说就是你程序改了,现在要重新启动服务器,嫌麻烦?不用重启,服务器会自己悄悄的把更新后的程序给重新加载一遍,这就是热部署。
411 0
【SpringBoot2】开发实用篇-热部署
|
Java 应用服务中间件 开发者
SpringBoot实现热部署笔记
SpringBoot实现热部署笔记
SpringBoot实现热部署笔记
|
Java 编译器 Android开发
Springboot 整合devtools实现热部署
Springboot 整合devtools实现热部署
139 0
Springboot 整合devtools实现热部署
|
Java Android开发
SpringBoot【实现热部署-devtools】
本文介绍下在IDEA中项目热部署的两种方式,因为如果每次我们修改下页面的代码都需要重新启动的话那么效率就太低了。
SpringBoot【实现热部署-devtools】