springboot 服务器热部署(IDEASpringBoot热部署亲测推荐HotSwap插件)

1. 概述

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

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

严格来说,应该叫 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 插件,可以实现真正的热部署。如下图所示:

springboot 服务器热部署(IDEASpringBoot热部署亲测推荐HotSwap插件)(1)

2.1 演示

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

① Debug 运行 Spring Boot 应用。

② 修改Java代码测试验证。

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

springboot 服务器热部署(IDEASpringBoot热部署亲测推荐HotSwap插件)(2)

springboot 服务器热部署(IDEASpringBoot热部署亲测推荐HotSwap插件)(3)

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

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

springboot 服务器热部署(IDEASpringBoot热部署亲测推荐HotSwap插件)(4)

3.2 结论

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页