使用JRebel实现SpringBoot热部署
多数Java开发者都抱怨Java开发的效率太低,不像PHP那样的动态编程语言那样,随时修改,随时生效。所以今天我们就给广大Java开发者带来了福音-JRebel【实现Java热部署的神器】。今天我们只讲Springboot环境下如何使用JRebel实现热部署。
实现SpringBoot热部署的方式
实际上Springboot已经提供了实现热部署的方法了。那就是你只需要引入依赖【springboot-devtools】就可以了 。具体可以参考这篇文章springboot-devtools 热部署
那为什么我们还需要JRebel呢?
- 额外引入的依赖实际上生产环境并不需要,开发者引入后容易误提交到线上。
- springboot-devtools方式的热部署在功能上有限制。如在方法内的修改可以实现热部署,但是新增的方法或者修改方法参数之后热部署是不生效的。
- 相对于JRebel,springboot-devtools方式热部署的速度可能有点慢
JRebel实战
idea下安装JRebel插件
安装JRebel插件很简单,只需要搜索一下就直接安装了。
注意:如果不是通过在线安装的话,一定要注意要下载最新版本的JRebel插件。不然低版本的插件很可能不支持你当前所使用的Springboot版本。
安装好之后工具栏会多两个图标。
使用JRebel插件
安装还之后就可以使用下面两种方式来run了。之后的所有修改就读可以实现热部署啦。
run with JRebel
使用JRebel插件注意点
由于JRebel是实时监控class文件的变化来实现热部署的,所以在idea环境下需要打开自动变异功能才能实现随时修改,随时生效。
-
在设置中打开自动编译
如图,在设置中打开即可。自动编译
2.打开运行时编译
按快捷键 Shift+Ctrl+Alt+/ ,选择 Registry
打开运行时编译
\
勾选如图所示
8.png
JRebel官方文档
IntelliJ IDEA
Enable automatic compilation
JRebel实战效果
1.Run with JRebel
run with JRebel
2.演示修改效果
-
方法内修改代码
-----------------------------------------修改之前------------------------------------------------方法内修改代码之前1
方法内修改代码之前2
-----------------------------------------修改之后------------------------------------------------
方法内修改代码之后1
方法内修改代码之后2
-
增加方法
-----------------------------------------修改之前------------------------------------------------增加方法修改之前1
增加方法修改之前2
-----------------------------------------修改之后------------------------------------------------
增加方法修改之后1
增加方法修改之后2
-
修改配置文件
-----------------------------------------修改之前------------------------------------------------修改配置文件之前1
修改配置文件之前2
修改配置文件之前3
-----------------------------------------修改之后------------------------------------------------
修改配置文件之后1
修改配置文件之后2
可以看到JRebel基本上满足了我们日常开发中的所有需求了。如果还有啥不满足的话,那么我估计JRebel在最新的版本中一定会有所体现的。
作者:藤伦柳揶
链接:https://www.jianshu.com/p/bdc88bef0af2