spring boot热加载for idea

前言

之前在用tomcat作为web服务器时,通过更改idea中的配置"Update classes and resources"即可实现热部署,现在改成spring boot之后发现不行了。热部署对于开发人员来说是个提升开发效率的神器,所以今天决定搞定这个问题!

一、为什么不用spring-devtools?

首先明确一点,为什么不使用spring-devtools。一般热部署都是通过ClassLoader来实现,每次类发生变化时重新加载类信息,具体细节这里不再阐述,可以自行度娘或google,总之上述的操作会给服务器带来额外的开销。所以先明确自己的需求,我的需求就是方便本地开发测试,不用每次都重启,我们要避免其他的依赖延续到线上服务器。而spring-devtools因为需要额外的jar依赖,需要将jar上传的服务器,通过配置"spring.devtools.restart.enabled=false关闭监听,好吧,我是个有强逼症的人

二、其他的方案

还有另外一种方式,通过spring-loaded+maven命令启动,这种方式仔细看下,还不如直接用spring-devtools,果断放弃

三、jrebel的使用

jrebel以插件的形式附着在idea上,不会影响其他的任何环境的任何服务器,符合我们的需求。

1、下载安装

在idea中搜索jrebel插件,点击下载安装即可,如下图:

2、重启idea

这个没什么好说的,重启就好了。友情提示,如果idea在运行着某个服务,建议先手动关闭再重启,否则会等很久(具体啥原因不太了解,猜测idea关闭服务并不是直接kill那么简单吧)

3、激活

jrebel并不是免费的,需要激活一下才可以,如下图:

上面的地址格式是 http://139.199.89.239:1008/{guid} 的形式,其中guid可以通过 https://www.qvdv.com/tools/qvdv-guid.html 来生成;邮箱随便填写一个就好了,会给你发送邮件

4、配置

激活之后需要配置一下jrebel,打开idea的setting,点击jrebel,点击work offline(点击后变成work online),如下图:

5、启动

一切都准备好之后,在ieda原来的启动按钮旁边会多出两个按钮,可以理解为以jrebel的形式启动,这样就可以实现热部署了,如下图:

6、注意

由于使用了破解版,对于一些公司可能有版权的要求限制(比如阿里是不允许使用破解版的软件的),需要自行斟酌。

posted @ 2019-05-13 16:16  _Emotion丶小寳  阅读(228)  评论(0编辑  收藏  举报