IDEA中三种方式实现SpringBoot热部署
概述:热部署(HotSwap)也叫热加载、热更新、热替换,它避免了少量代码更改而带来的避免重启时间,在大型项目中尤其有用,三个实现SpringBoot
热部署方法,配合IDEA使用。
dev-tools
可以实现大部分代码的热部署,但是和数据库连接池有冲突,容易造成数据库连接池关闭。JRebel
需要用网络注册,无网环境配置不太行。HotSwap
插件IDEA自带,有时不太生效。
总
¶Dev-tools(推荐)
spring-boot-devtools
是 Spring Boot 提供的开发者工具,它会监控当前应用所在的 classpath 下的文件发生变化,进行自动重启。
注: dev-tools并不是热部署,而是一种较快的重启方式 。
¶引入Maven依赖
1 | <dependency> |
¶配置yaml
在application.yaml
或application.yml
配置,如果是.properties需自行转换
1 | spring: |
到这里就已经可以了,如果项目代码更改,在项目使用Debug模式启动下,只需要在IDEA上方 Build->Build Project即可(快捷键为 Ctrl+F9)
如果这一步也想省掉,执行以下步骤。
¶自动编译
打开IDEA设置,在Compiler
选项卡,将 Build project automatically
勾选
此时dev-tools限定在Debug模式下启动项目,如果想要Run模式也能使用dev-tools,Ctrl+Shift+Alt+/
,勾选Registry下的Compiler autoMake allow when app running
¶JRebel
一款知名的Java热部署插件
¶IDEA安装JRebel插件
在idea的settings -> Marketspace -> 搜索jrebel -> 下载JRebel and XRebel for IntelliJ
¶在线GUID地址:在线生成GUID
在 https://www.guidgen.com/ 生成GUID后, 服务器地址为 https://jrebel.qekang.com/{GUID}
¶打开JRebel
选择Connect to online licensing service
以后通过JRebel
启动项目即可
¶设置离线模式
在IDEA中 settings -> JRebel & XRebel -> 点击Work offline
¶自动编译
同Dev-tools的自动编译
¶HotSwap
IDEA自带的插件,而且与dev-tools
不兼容,需去除dev的依赖。
使用和自动编译同Dev-tools。