持续原创输出,点击上方蓝字关注我
目录前言
JRebel收费怎么破?
什么是本地热部署?
什么是远程热部署?
JRebel和devtools的区别
如何安装JRebel?
如何本地热部署?
如何远程热部署?
多模块开发的一个坑
总结
前言Spring Boot中的热部署相信大家用的最多的就是devtools,没办法,官推的。
JRebel相对于devtools,个人觉得无论是加载速度还是使用便捷,JRebel完胜。
作为「前辈级别」的开发利器,JRebel真的值得开一章节来好好介绍下。
JRebel收费怎么破?前面作者单独写过一篇JRebel的文章教程,没钱的可以去看看:撸了个反向代理工具,搞一搞JRebel。
「特此声明」:作者支持原版,不差钱的建议装个原版的,毕竟这么好的工具值得。
什么是本地热部署?传统的开发中,项目在启动过程中代码有所改动是不会重新编译运行的,而是要关闭项目重新启动后修改的代码才会生效。
「本地热部署」则是能够在项目运行中感知到特定文件代码的修改而使项目不重新启动就能生效。
什么是远程热部署?远程热部署的远程两字指的是「远程服务器」,平时开发中,只要本地代码改动了,必须要重新打包上传服务器重新启动之后才会生效,「你这样干过吗?.......」
嗯?好像干过「远程热部署」则是本地代码改变之后,不用重新打包上传服务器重启项目就能生效,本地改变之后能够自动改变服务器上的项目代码。
有些人听到这里懵逼了,这是什么鬼?还有这么神奇的东西...........
别惊讶,就是这么神奇 JRebel和devtools的区别前辈和后辈的比较其实没什么可比性,如果不是JRebel「收费」了,绝对是所有程序员的首选。但还是要说说他们之间的区别,如下:
JRebel加载的速度优于devtools
JRebel不仅仅局限于Spring Boot项目,可以用在任何的Java项目中。
devtools 方式的热部署在功能上有限制,方法内的修改可以实现热部署,但新增的方法或者修改方法参数之后热部署是不生效的。
如何安装JRebel?本地热部署只需要在IDEA中装一个JRebel的插件,远程热部署需要在服务器上装一个JRebel,这两种方式在上一篇文章都介绍过,不会的可以去看看:撸了个反向代理工具,搞一搞JRebel。
如何本地热部署?JRebel插件安装完成之后,将IDEA中的自动编译开启,然后找到IDEA中的JRebel的工具面板,将所需要热部署的项目或者模块勾选上即可,如下图:
勾选成功之后将会在项目或者模块的src/resource下生成一个rebel.xml文件。
此时在Spring Boot的主启动类上右键,将会出现以JRebel启动的选项,如下图:
当然在IDEA的右上角也存在启动的按钮,如下图:
①是本地启动和DEBUG模式启动,②是远程热部署的时候更新按钮。
此时就已经配置成功了,如果勾选的项目或者模块出现了改变,按CRTL+SHIFT+F9则会自动重新编译加载改变的部分,不用再重新启动项目了。
如何远程热部署?远程热部署需要在服务器上安装并JRebel,参照上篇文章:撸了个反向代理工具,搞一搞JRebel。
成功后需要设置远程连接的密码,在JRebel的根目录下执行以下命令:
java -jar jrebel.jar -set-remote-password 123456789