2021-07-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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值