您的位置 首页 php

IDEA + Spring Boot热部署亲测推荐HotSwap插件


1. 概述

在我开始学习Java过程中修改代码就得重启才能生效,这点不像PHP直接修改访问立即生效,所见即所得,重启项目编译直接影响到开发和测试效率,一个小型项目重启是特别痛苦的,等待的时间是较长的。但是随着项目逐渐变大,重启的速度变慢,等待时间 1-2 min 是比较常见的。导致我们开发效率降低,影响开发进度,严重影响到生活质量,为了解决该问题,从网上了解很多 热部署 方式,通过多方尝试推荐使用HotSwap插件方式,直接上干货,亲测验证成功

答案是有的,通过 热部署 的方式。并且实现的方式还是非常多的

1. spring-boot-devtools

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

注意, spring-boot-devtools 没有 采用热部署的方式,而是一种较快的重启方式。其官方文档解释如下:

“FROM 《Spring Boot 2.X 中文文档 —— 开发者工具》 Spring Boot 通过使用两个类加载器来提供了重启技术。

  • 不改变的类(例如,第三方 jar)被加载到 base 类加载器中。
  • 经常处于开发状态的类被加载到 restart 类加载器中。

当应用重启时, restart 类加载器将被丢弃,并重新创建一个新的。这种方式意味着应用重启比 冷启动 要快得多,因为省去 base 类加载器的处理步骤,并且可以直接使用。 如果您觉得重启还不够快,或者遇到类加载问题,您可以考虑如 ZeroTurnaround 的 JRebel 等工具。他们是通过在加载类时重写类来加快重新加载。

1.2 结论 : 从网上按照教程操作后并没有成功,尝试失败

2. IDEA 热部署

IDEA 提供了 HotSwap 插件,可以实现真正的热部署。如下图所示:

e68e59f92a7e43f893077bc75b126a4d

2.1 演示

下面,我们来演示下 HotSwap 插件的使用。

① Debug 运行 Spring Boot 应用。

② 修改 Java代码测试验证。

③ 尝试修改配置“Running Application Update Policies” 实现自动编译。操作如下图:

b567c7bcd4174c4fbd868a2d1d60c555

adcf5b07d05c45a388193022e6e5424b

  • 要注意,需要 焦点 从 IDEA 离开。例如说,在我们修改完接口的代码之后,可能会切换到浏览器或者 Postman 对该接口进行测试,此时 IDEA 就会自动更新代码和资源,进行热部署。

切换到浏览器再赶紧切换到 IDEA 中,以达到 IDEA 失去焦点 的效果。我们在 IDEA 中可以看修改的类被重载的提示。如下图所示:

2042f74bbb0f413e981fbc48924fce1c

3.2 结论

注意使用: Debug 运行 Spring Boot 应用

文章来源:智云一二三科技

文章标题:IDEA + Spring Boot热部署亲测推荐HotSwap插件

文章地址:https://www.zhihuclub.com/51139.shtml

关于作者: 智云科技

热门文章

网站地图