当我们开启热部署之后,服务器不用重新加载(我们的项目也不用被重启),我们修改过后的代码就能生效。
关于热部署:
重启:Restart 自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器
重载:Reload jar包,加载位置base类加载器
需要添加maven坐标:
org.springframework.boot
spring-boot-devtools
一、手动启动热部署
怎么手工激活热部署?
在项目中修改坐标之后,点击Build-->Build Project (或者使用快捷键Ctrl+F9) 即可
对于热部署,仅仅是加载当前开发者自定义开发的资源,不加载jar资源
二、自动启动热部署 怎么开启自动启动热部署?① 点击Setting
② 找到下图页面所在的位置
③ 在右侧的界面中,找到这个选项,勾选上,“自动构建项目”
④“Apply”,应用一下
⑤“Ctrl”+“ATL”+“Shift”+“?”, 就会出现这个页面,点击图中选中的这个选项
⑥ 将下图中的第一个Key的Value给勾选上(这是旧版本的idea,如果是新版本的idea参考步骤七)
⑦新版本的idea开启自动启动热部署
在“Advanced Settings”中勾选 “Allow auto.....is currently running”
⑧当使用自动启动热部署的时候,如果我们改完程序,在页面上停留5秒之后,idea就会自动帮我们"Build Project"
三、热部署范围配置
如果我们想要某些文件或者或者文件夹不参与热部署的配置,怎么办?
在application.yml文件中配置下列信息
devtools:
restart:
exclude: static/** , public/** ,config/application.yml
# /** 表示此目录下的所有文件
# config/application.yml 已经具体到哪个目录下的哪个文件
四、禁用热部署功能
第一种. 在application.yml文件中配置下列信息
devtools:
restart:
exclude: static/** , public/** ,config/application.yml
enabled: false
# /** 表示此目录下的所有文件
# config/application.yml 已经具体到哪个目录下的哪个文件
但是这种形式关闭热部署,优先级别太低,可能关闭之后,别人又从别的配置文件或者其他地方给打开了(在优先级别高的地方),从而导致热部署在此启动。
第二种:在优先级别高的地方禁用热部署既然我们怕别人在优先级别高的地方启动热部署,那我们就在优先级别比较高的地方禁用热部署
首先我们先查看一下加载的优先级:
显然,application.yml配置文件在优先级为3的地方
那么,我们可以在优先级为6的地方禁用热部署功能
如下列代码:
@SpringBootApplication
public class Springboot12HotDisplayApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(Springboot12HotDisplayApplication.class, args);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)