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

相关文章
|
机器学习/深度学习 自然语言处理 算法
【文本摘要(1)】抽取式之textrank(无监督学习):生成200字以内摘要
【文本摘要(1)】抽取式之textrank(无监督学习):生成200字以内摘要
733 0
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
1897 0
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
2185 3
|
Web App开发 缓存 Java
IDEA环境下的热加载与热部署
本文探讨了开发中自动更新代码以提高效率的方法,提到了“热启动”等不同术语,并指出其实现比命名更重要。介绍了两种方式:使用Jrebel插件(需付费,可能与某些Spring Boot版本不兼容)和Spring Boot的devtools热加载。devtools通过两个ClassLoader实现快速更新,只需添加依赖并配置IDEA。此外,建议配合LiveReload浏览器插件自动刷新页面。遇到问题可能与JDK版本不匹配或缓存有关。
1981 1
|
算法 Shell 计算机视觉
BeiT v2 来袭 | BeiT升级,全面超越 MAE,实现 Vision Transformer 微调自由!
BeiT v2 来袭 | BeiT升级,全面超越 MAE,实现 Vision Transformer 微调自由!
1633 0
BeiT v2 来袭 | BeiT升级,全面超越 MAE,实现 Vision Transformer 微调自由!
|
缓存 关系型数据库 MySQL
业务中的字典表的MySQL实现方案
业务中的字典表的MySQL实现方案
925 0
业务中的字典表的MySQL实现方案
|
Java 应用服务中间件 Linux
终于有人把怎么在IDEA中使用Java热部署插件JRebel讲清楚了...
终于有人把怎么在IDEA中使用Java热部署插件JRebel讲清楚了...
4002 0
|
SQL 前端开发 Java
springBoot:基础知识 (一)
本文介绍了如何配置本地 Maven,包括下载和安装 Maven,配置 `setting.xml` 文件以使用阿里云镜像,并设置本地仓库路径。此外,还详细说明了如何在 IDEA 中配置 Maven,并提供了创建数据库表、配置 `.yml` 文件以及 pom 依赖的示例。最后,文章还展示了如何通过 Spring Boot 控制器返回数据给前端,并介绍了项目目录结构及其作用,包括 controller、mapper、pojo、service 和 impl 目录的具体功能。
363 0
|
消息中间件 存储
RabbitMQ如何保证消息发送成功
RabbitMQ如何保证消息发送成功
712 0
RabbitMQ如何保证消息发送成功
|
NoSQL 算法 Unix
Redis(三十三)-Redis键过期时间设置以及过期键删除策略
在Redis中我们可以通过四个不同的命令来给键设置过期时间
718 0
Redis(三十三)-Redis键过期时间设置以及过期键删除策略

热门文章

最新文章