热部署Debug HotSwap 三种方案实现
方式一:JRebel插件
一:Idea先下载插件:
![热部署](https://i-blog.csdnimg.cn/blog_migrate/713b1f637a20f3887e48013c2acf85d4.png)
二:激活:
![激活](https://i-blog.csdnimg.cn/blog_migrate/0502252b3ac7793d6663c1cfe534ada9.png)
三:选择url方式激活:
![选择激活方式](https://i-blog.csdnimg.cn/blog_migrate/22d5f5b2287fdd47db38e7eb6162e76b.png)
生成guid地址
四:设置编辑器自动编译为开启状态
![](https://i-blog.csdnimg.cn/blog_migrate/063d4c0278c0b8c367c7b10ce5d5c55a.png)
五:继续设置 ctrl+ shift+ alt+ / —>选择Registry选项
![](https://i-blog.csdnimg.cn/blog_migrate/77ac4f579d53b1d5cb5c1ef42dff30cb.png)
六:启动后编译成功 按 ctrl + shift+F9 进行编译
*优点:*强大,对各类框架支持,并且提供IDE插件的方式。
方式二:Idea自带热部署
idea菜单–>run----> EditConfiguration 然后配置指定服务器下 runingApplication Update Policies
![](https://i-blog.csdnimg.cn/blog_migrate/6b1341390495a2ffc1f61516b1f01b24.png)
缺点:这种方式是基于 JVM 提供的热加载,仅支持方法块内代码修改,只有 debug 模式下,并且是在 idea 失去焦点时(也即电脑切换到其他界面)才会触发热加载,相对加载速度缓慢 。
方式三:Spring boot devtools 热部署工具
一:添加依赖:
<!--devtools热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
二:添加配置
spring:
devtools:
restart:
enabled: true #设置开启热部署
additional-paths: src/main/java #重启目录
exclude: WEB-INF/**
freemarker:
c: false #页面不加载缓存,修改即时生效
三:设置自动编译为开启状态
四:[继续设置](#五:继续设置 ctrl+ shift+ alt+ / —>选择Registry选项)
注:
- devtools可以实现页面热部署 (设置spring.freemarker.freemarker=false)可以实现
- /resource /static 等文件夹下的文件修改不会使应用重启,但是会进行重新加载
- 每修改一个方法代码块项目都会进行一次重新启动
*缺点:*只支持springboot项目