SpringBoot 整合 devtools 实现热部署

时间:2018-11-19
本文章向大家介绍springboot -devtools 实现热部署,需要的朋友可以参考一下

devtools模块,是为开发者服务的一个模块。主要的功能就是代码修改后一般在5秒之内就会自动重新加载至服务器,相当于restart成功。与JRebel不同的是,JRebel是一款商业插件,devtools是免费的。

devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件、属性文件、页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现这个启动比较慢,可以选择使用jrebel) 双类加载器机制:boot使用了两个类加载器来实现重启(restart)机制:base类加载器(简称bc)+restart类加载器(简称rc)。 bc:用于加载不会改变的jar(eg.第三方依赖的jar) rc:用于加载我们正在开发的jar(eg.整个项目里我们自己编写的类)。当应用重启后,原先的rc被丢掉、重新new一个rc来加载这些修改过的东西,而bc却不需要动一下。这就是devtools重启速度快的原因。

在使用IDEA做SpringBoot的web项目的时候,在每一次修改了java文件或者是resource的时候,都必须去重启一下项目,这样的话浪费了很多的时间,那么,这个时候,就需要去实现程序的热部署,能够在修改了页面的时候能够立马刷新显现出新的效果。

v热部署

1.1 在设置中勾中Build project automatically

SpringBoot(十二)DevTools热部署

1.2 使用快捷键Ctrl + shift + alt + /,打开Maintenance操作面板,选择Registry,打开Registry操作面板

SpringBoot(十二)DevTools热部署

1.3 找到并勾线"compiler.aut0make.allow.when.app.running",点击Close关闭操作面板。

SpringBoot(十二)DevTools热部署

1.4 启动应用,查看日志。

SpringBoot(十二)DevTools热部署

1.5 更新某个类文件进行验证。

 SpringBoot(十二)DevTools热部署

如上图,spring-boot-devtools将会自动重启,留意观察控制台的日志。

v热加载(LiveReload)

2.1 在谷歌商店添加LiveReload插件

 SpringBoot(十二)DevTools热部署

SpringBoot(十二)DevTools热部署

2.2 启动项目查看效果

SpringBoot(十二)DevTools热部署

2.3 更新之后效果

SpringBoot(十二)DevTools热部署

2.4 其他方式

关于热加载的方式,启动以后如果html有更新,直接F5刷新也是好使的。