irpas技术客

springboot---手动启动热部署、自动启动热部署、热部署范围配置、禁用热部署_我爱布朗熊_springboot 手动热部署

网络 8344

基本了解:

?当我们开启热部署之后,服务器不用重新加载(我们的项目也不用被重启),我们修改过后的代码就能生效。

关于热部署:

? ?重启:Restart 自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器

重载:Reload jar包,加载位置base类加载器

需要添加maven坐标:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>

一、手动启动热部署 ? ? ?怎么手工激活热部署?

在项目中修改坐标之后,点击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); } }


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #springboot #手动热部署 #关于热部署 #重启Restart