java SpringBoot SpringCloud 热部署 热加载 热调试

文章很长,建议收藏起来,慢慢读! 备注:持续更新中.....


价值连城:2021春招月薪过5万 面试题 总系列

搞定下面这些面试题,2021春招月薪过5万(猛!) 阿里、京东、美团、头条.... 随意挑、横着走!!!
Java基础
1: JVM面试题(史上最强、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14365820.html
2:Java基础面试题(史上最全、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14366081.html
3:死锁面试题(史上最强、持续更新) [https://www.cnblogs.com/crazymakercircle/p/14323919.html]
4:设计模式面试题 (史上最全、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14367101.html
5:架构设计面试题 (史上最全、持续更新、吐血推荐) https://www.cnblogs.com/crazymakercircle/p/14367907.html
还有 10 几篇价值连城 的面试题 具体..... 请参见【 疯狂创客圈 高并发 总目录

万字长文: 疯狂创客圈 springCloud 高并发系列

springCloud 高质量 博文
nacos 实战(史上最全) sentinel (史上最全+入门教程)
springcloud + webflux 高并发实战 Webflux(史上最全)
SpringCloud gateway (史上最全)
还有 10 几篇 万字长文 的高质量 博文 具体..... 请参见【 疯狂创客圈 高并发 总目录

Java/SpringBoot/SpringCloud 热部署 热加载 热调试

有两种方式:

一: devtools的热部署

【这是一种假的热部署,说白了就是重启一下】

二. jrebel 的热部署

很牛逼,但是需要破解哦

方式一:devtools 的热部署

每修改一下代码再去 run一次, 实在是很麻烦. 很浪费时间. 很低效

但既然用这个框架的,它所包含的特性什么的还是要充分利用,不能浪费呀!

springboot的热部署网上有太多的教案,在此呢,也只是真实记录一下自己在实际操作过程中的方法步骤。

1、pom.xml配置,这是一定要配置的

热加载在pom.xml中添加devtools的maven引用,同时在plugin中添加devtools生效标志

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
</plugin>
<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<fork>true</fork>  <!-- 如果没有该生效标志,热部署的devtools不生效 -->
	</configuration>
	<executions>
		<execution>
			<goals>
				<goal>build-info</goal>
			</goals>
		</execution>
	</executions>
</plugin>

2、Idea设置

于热部署是监听 Class 文件的变化,它自身不会主动去编译 Java 文件,所以我们得在 Java 文件改动时,自动编译成 Class 文件,然后热部署工具创造的新的类加载器才会加载改变后的 Class 文件。

所以,如果你使用 IDEA 开发工具的话,记得要把自动编译打开。

File | Settings | Build, Execution, Deployment | Compiler :该√的√上

在这里插入图片描述

3、修改IDEA的 Registry

开启自动编译,还差一步。

所以,如果你使用 IDEA 开发工具的话,记得要把自动编译打开。

再执行 shift+ctrl+alt+/ 快捷键
在这里插入图片描述

在这里插入图片描述

在配置文件application.yml

热部署生效:在配置文件application.yml中添加 :

spring:
  devtools:
    restart:
      enabled: true  #设置开启热部署

4 重启idea,运行工程

注意:这种配置启动不能直接运行 main 方法了,需要使用 mvn spring-boot:run 启动,

运行:mvn clean spring-boot:run

问题:

springBoot框架 只是实现了热启动而已,从控制台日志就可以看出来。

方式二: JRebel插件热部署

可以在csdn下载离线插件:

https://download.csdn.net/download/qq_32769447/11667644

也可以使用idea安装在线插件:

开发工具idea中使用JRebel插件

JRebel是JavaEE中比较流行的热部署插件,可快速实现热部署,节省了大量重启时间,提高了个人开发效率。

1、点击File -> Settings -> Plugins,如下图:搜索JRebel安装

在这里插入图片描述

jrebel 的激活和使用

1、重启idea,右上角即出现快捷按钮,分别是run、debug模式

img

2 第一次使用是,需要 激活

详情如后面

3 激活之后,也可以右键springboot的启动类:

img

又或者使用spring的运行面板:

img

手动编译要加载的类

如果配置了自动编译,这一步,直接忽略

在这里插入图片描述

jrebel自动加载class,自动配置bean

代码重新编译后,jrebel自动加载class,自动配置bean
在这里插入图片描述

设置为离线模式

然后将JRebel设置为离线模式,可以180天内不用再次激活,如下图

img

方式二补充:激活jrebel

1、下载ReverseProxy_windows_amd64.exe,以下链接可下载。

链接1:https://github.com/ilanyu/ReverseProxy/releases/download/v1.4/ReverseProxy_windows_amd64.exe
链接2:https://download.csdn.net/download/zcxbd/11151163

2、双击exe文件,如图1所示:

图一:
图1

3、idea点击激活jrebel,激活页面如下图二,http://localhost:8888/aa408ec4-1454-4187-96b8-f292e2c223cf该链接组成:端口8888即是图一中的8888,后面的随机码,可用uuid在线生成;邮箱随便填写即可;再勾选同意,点击激活按钮即可

图二-1:
在这里插入图片描述
图二-2:
在这里插入图片描述
图二-3:
在这里插入图片描述
图二-4:注意:图二-4中的激活按钮处显示“Change license”,是因为我已经激活成功!!!
在这里插入图片描述

4、激活成功后,记得配置jrebel,选择离线模式,不然你要一直打开【1】中的exe文件,否则又会提示让你激活

在这里插入图片描述


回到◀疯狂创客圈

疯狂创客圈 - Java高并发研习社群,为大家开启大厂之门

posted @ 2019-12-21 16:48  疯狂创客圈  阅读(6469)  评论(0编辑  收藏  举报