2025年6月7日 星期六 乙巳(蛇)年 三月十一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Spring Boot

SpringBoot 实现热部署有哪几种方式

时间:12-14来源:作者:点击数:5
CDSY,CDSY.XYZ

主要有两种方式:

  • Spring Loaded
  • Spring-boot-devtools

Spring Loaded

spring loaded 可实现修改类文件的热部署,配置起来也比较简单,具体可看其 github 地址上的说明。首先需要获得 spring loaded 的 jar 包,从 spring loaded 的 github 地址可以找到,并且这个地址有说明,可以参考下。

github 地址:https://github.com/spring-projects/spring-loaded

如图所示:可以下载 release 版本,也可以下载其他的版本

我测试的时候下载的是其他版本更高的jar包,从repo.spring.io进去,根据地址目录去找,

  • https://repo.spring.io/libs-snapshot/org/springframework/springloaded

下载的是 1.2.9 的版本,然后可以参考 github 上,我是在项目根目录新建 lib 包,然后把下载好的 jar 包放在 lib 下,命令是:

  • -javaagent:.\lib\springloaded-1.2.9.jar -noverify

然后启动之后就可以测试啦,改动 java 文件后点 rebuild project,就可以看到效果了。

Spring-boot-devtools

spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。

其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader ,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

spring-boot-devtools 是一个为开发者服务的模块,可以实现 Spring Boot 热部署,其中最重要的功能就是自动将应用代码更改到最新的 App 上面去。

spring-boot-devtools 可以实现页面热部署,实现类文件热部署(类文件修改后不会立即生效),实现对属性配置文件的热部署。其原理是 spring-boot-devtools 会监听 Classpath 下的文件变动,并且会立即重启应用(发生在保存时机)。

由于采用的虚拟机机制,重启的时候只是加载了在开发的 Class,没有重新加载第三方的 JAR 包,所以重启是很快的。

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐