SpringBoot热部署方式常用有三种
1:spring-boot-devtools
2:Spring Loaded
3:Jrebel
SpringBoot 1.3后才拥有SpringBoot devtools热部署
(前期设置) 统一开启相应的配置
-
需要开启自动编译功能
自动编译功能 -
然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷键) 选择"Registry" 然后勾选 compiler.automake.allow.when.app.running
1.spring-boot-devtools
依赖spring-boot-devtools实现,将以下代码放到dependencies中:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
依赖完,直接运行ApplicationBoot就行了,如图:
image因本人项目springboot版本过低,导致spring-boot-devtools无法正常使用。无奈只能看其他的热部署
springloaded
1.第一种 通过springboot:run的方式(不推荐)
<build>
<plugins>
<plugin>
<!-- springBoot编译插件-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- spring热部署 -->
<!-- 该依赖在此处下载不下来,可以放置在build标签外部下载完成后再粘贴进plugin中 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.8.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
springboot:run
image.png
需要单独使用maven的命令去运行,脱离了sprigboot的run dashboard,繁琐。
第二种 直接使用javaagent
跟第一种采用的同样方式,不过需要将spring-loaded下载下来,可以通过配置vm,直接用run启动服务就可以了。
因springloaded1.2.9版本暂无法通过maven中央库下载,可直接通过下面链接下载到本地。
springloaded-1.2.9.BUILD-20200902.195913-10.jar
将下面这局代码放到VM arguments中,如图:
-javaagent:D:\maven_jar\springloaded-1.2.8.RELEASE.jar -noverify
# 说明:-javaagent:springloaded-xxx.jar的路径 -noverify
直接用javaagent
然后直接RUN启动就行了!
附属说明:springloaded1.2.6版本可能会出现以下问题 https://github.com/spring-projects/spring-loaded/issues/165 所以不建议使用1.2.6版本
java.lang.IllegalStateException: The type registry TypeRegistry(id=1252261311,loader=sun.misc.Launcher$AppClassLoader) does not know about t
3. 使用Jrebel (好用、收费,需要破解版)
开发工具idea中使用JRebel and 插件
1、点击File -> Settings -> Plugins,如下图:搜索JRebel安装
image.png破解见:https://www.cnblogs.com/flyrock/archive/2019/09/23/11574617.html
image点击Change license,进行已激活。激活成功界面
image激活后一定要手动切换到离线模式,可离线180天,可随时重新点下“Renew Offline Seat”刷新激活周期,180天后激活状态会重新刷新 。
image- 选择开启各个模块热部署配置,程序会自动添加rebel.xml
3、重启idea,右上角即出现快捷按钮,分别是run、debug模式
image或者右键springboot的启动类:
image又或者使用spring的运行面板:
image在服务启动后,如增加或修改代码,按Ctrl+shift+F9重新编译,改动就可直接生效了.
参考:
https://www.cnblogs.com/leeego-123/p/10538460.html
https://www.jb51.net/article/174685.htm
网友评论