ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-07-14热部署

2021-07-14 17:06:21  阅读:192  来源: 互联网

标签:触发 07 文件 spring 重启 2021 devtools resources 14


1.使用SpringBoot热部署目的
springboot热部署可以让我们在修改代码的时候,不用每次都手动重启应用。
它会自动重启服务,并且比手动重启消耗的时间更少。

2.快速入门
1.引入jar包

org.springframework.boot
spring-boot-devtools
runtime
true

1
2
3
4
5
6
2.配置Idea
打开File->Settings->Build->Compiler,勾选build project automatically

按快捷键Ctrl+Alt+Shift+/ (如果出来Registry…则点击进入),勾选compiler.automake.allow.when.app.running

至此配置完毕。
启动项目后,再修改java文件,项目就会在短时间内自动重启

3.原理介绍
1.devtools会在运行时监控java文件,当文件发生变化时,就会重新编译并重启项目
2.devtools有两个类加载器(classloader),一个叫base classloader,一个叫restart classloader。base classloader负责加载第三方的依赖jar包,restart classloader负责加载我们项目的class文件。
3.当项目重启时,base classloader不会重新加载第三方jar包里的class文件,只有restart classloader会重新加载项目里的class文件,这样的话相比于我们手动重启项目(所有class文件包括第三方jar包都会重新加载)要快很多。

4.idea自动更新配置
在idea启动栏选择edit configurations

找到running application update policies一栏,并更改更新策略:
说明:
1.on ‘update’ action表示点击更新操作时触发策略,
2.on frame deactivation表示idea窗口失去焦点时,比如切换到桌面的时候,触发策略。
策略有三种:
1.do nothing:什么都不做
2.update resources:更新resources下的资源文件
3.update classes and resources:更新class文件和resources下的资源文件

常用配置:
我们可以只把on ‘update’ action的策略改为update classes and resources。
此时如果我们启动项目,则在左下角服务窗口会多出一个小图标,如图:

于是,我们每次修改代码后,可以点击该按钮,idea就会更新并加载class文件。

5.spring-boot热部署和idea自动更新对比
对比条件 spring-boot-devtools idea自动更新策略
重启服务 会 不会
是否自动 修改代码后自动重启加载class文件 需要满足触发条件,例如更新文件或者窗口失去焦点
触发条件 修改代码会触发,改变默认静态资源时不会,不过可以灵活配置 触发条件只有两种,策略只有三种(不过基本满足日常需求)
6.spring-boot热部署灵活配置
1.排除resources

默认情况下,更改/META-INF/maven, /META-INF/resources ,/resources ,/static ,/public 或/templates下的资源不会触发重启,而是触发live reload(稍后介绍)。
如果还有一些个性化文件我们也不想让它触发重启,则可以在配置文件中加上spring.devtools.restart.exclude参数,例如

spring.devtools.restart.exclude=static/, public/
1
2.监视其他路径

如果我们想要指定路径加入监控,可以利用参数spring.devtools.restart.additionalpaths,配置方法和上面一样

3.使用触发文件

若不想每次修改都触发自动重启,可以设置spring.devtools.restart.trigger-file指向某个文件,只有更改这个文件时才触发自动重启。

4.Live Reload

Devtools模块包含一个嵌入的LiveReload服务器,可以在资源变化时用来触发浏览器刷新。浏览器需要在livereload.com下载安装扩展。
————————————————
版权声明:本文为CSDN博主「金牛区代码仔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34381842/article/details/118339905

标签:触发,07,文件,spring,重启,2021,devtools,resources,14
来源: https://blog.csdn.net/qq_39455888/article/details/118731862

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有