当前位置: 首页 > news >正文

【开发篇】一、热部署

文章目录

  • 1、手工启动热部署
  • 2、自动启动热部署
  • 3、热部署范围配置
  • 4、关闭热部署功能

1、手工启动热部署

日常开发与调试,改几行代码想看效果就得手动点重启,很繁琐,接下来考虑启动热部署。首先引入springboot开发者工具:

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

此时若代码有变更,按Ctrl+F9构建项目操作即可实现热部署(手动)

在这里插入图片描述

关于热部署,有两个词条:

  • 重启(Restart):波及范围包括自定义开发代码,包含类、页面、配置文件等,加载位置是restart类加载器
  • 重载(ReLoad):波及范围包括各种依赖的jar包,加载位置是base类加载器

改完代码,依赖的jar包通常不变,这个是没必要每次重复加载的。所以,热部署做的是Restart,不会重新加载依赖的jar资源。(第一次启动是Reload+Restart,热部署则只管Restart)

2、自动启动热部署

上面每次点构建,和点重启其实差不多,无非是比重启启动的快(不再加载依赖的jar的原因)。

在这里插入图片描述

接下来解决这个问题,开启自动热部署。首先打开Setting里的Build project automatically设置:

在这里插入图片描述

再Ctrl+Alt+/打开Registry:

在这里插入图片描述

快捷键调不出来的就加一下快捷键:

在这里插入图片描述
此时,当IDEA工具失焦(如从IDEA切到浏览器)5秒后自动启动热部署。(坑比较多,没生效的话,可能有以下原因:)

  • 没有以debug方式启动,而是直接run
  • 打开了好多IDEA窗口

3、热部署范围配置

对于html页面等这类文件,改完后刷新浏览器就生效,不用参与热部署,即要控制热部署的范围才更合理。默认不触发重启的文件或目录有:

  • /META-INF/maven
  • /META-INF/resources
  • /resources
  • /static
  • /public
  • /templates

除了默认列表,可自定义不参与热部署重启的排除项:

devtools:  restart:   # 文件夹就后面加/**,即所有文件 exclude: public/**,static/**,config/application.yml

在这里插入图片描述

上面这个热部署仅在本地开发阶段有意义,等线上了,不可能出现服务正运行呢,代码变了的情况。(那时候可能会发生配置更新,又追求更新配置不用重启服务就生效,即热更新,后话了)

4、关闭热部署功能

方式很多,最直接的就是在配置文件改:

devtools:  restart:   exclude: public/**,static/**,config/application.ymlenable: false

但回顾之前配置文件的优先级,这里级别低:

在这里插入图片描述

容易被覆盖而不生效,因此换个优先级高的实现:

public static void main(String[] args) {//注意这里key的写法,参考properties文件System.setProperty("spring.devtools.restart.enabled", "false");SpringApplication.run(SSMPApplication.class);}

相关文章:

【开发篇】一、热部署

文章目录 1、手工启动热部署2、自动启动热部署3、热部署范围配置4、关闭热部署功能 1、手工启动热部署 日常开发与调试&#xff0c;改几行代码想看效果就得手动点重启&#xff0c;很繁琐&#xff0c;接下来考虑启动热部署。首先引入springboot开发者工具&#xff1a; <dep…...

点云从入门到精通技术详解100篇-定子装配过程中基于深度学习的易变形材料的点云分割(下)

目录 4.3.2 校正网络 4.3.3 浅层特征提取网络 4.3.4 空间边界 Transformer 深层特征提取网络 4.3.5 损失函数...

谷歌浏览器关闭自动更新功能

背景&#xff1a;自动化测试需要下载webdriver驱动&#xff0c;然而浏览器自动更新会导致原来的驱动版本与现有浏览器版本不匹配&#xff0c;所以要禁用掉浏览器自动更新功能。 1.右键-我的电脑-打开管理&#xff1b; 2.选择任务计划程序-任务计划程序库-找到两个chrome自动更新…...

电商业务--技术负责人 250K*15

职位描述 研发团队管理 系统搭建 技术管理 系统架构 岗位职责 负责/参与到中大型负责系统的整体架构和设计&#xff1b; 根据业务特点和行业最佳实践&#xff0c;设计符合多个市场物流业务需求&#xff0c;且具备可扩展能力的系统架构和业务架构承担团队稳定性建设工作&#…...

MySQL只同步单个表或多个表,非全部同步!

replicate-do-table 是 MySQL 复制配置中的一个选项&#xff0c;它允许您指定要在从服务器上复制的表。如果您想要只复制主服务器上特定的表到从服务器&#xff0c;您可以使用这个选项。 以下是如何操作 replicate-do-table 的步骤&#xff1a; 停止从服务器: 在从服务器上执行…...

【论文基本功】【LaTeX】个人常用易忘LaTeX命令

【论文基本功】【LaTeX】个人常用易忘LaTeX命令 1. 基本符号2. 引用3. 字体及符号大小4. 其他参考 1. 基本符号 符号LaTeX命令备注 ∣ ⋅ ∣ | \cdot | ∣⋅∣| \cdot |绝对值 ∣ ∣ ⋅ ∣ ∣ || \cdot || ∣∣⋅∣∣\| \cdot \|范数 ⌈ ⋅ ⌉ \lceil \cdot \rceil ⌈⋅⌉\lce…...

JVM参数调优——G1收集器

开启 G1 Collector G1收集器的出现除了提供可控的低延迟GC&#xff0c;解决历史收集器的一些弊病&#xff0c;同时还尽力简化调优参数 对于大多数应用&#xff0c;开启收集器&#xff0c;再配置一下Xms和Xmx就足够了&#xff08;不建议配置Xmn&#xff09; -XX:UseG1GC核心参…...

Linux cp命令使用指南:详细教程及实际应用场景解析

文章目录 Linux中的cp命令使用指南1. 简介1.1 Linux操作系统简介1.2 文件系统和目录结构1.3 cp命令概述 2. cp命令基本用法2.1 复制文件2.2 复制目录2.3 复制多个文件或目录2.4 递归复制2.5 强制覆盖已存在文件2.6 保留文件权限和属性 3. 高级用法3.1 保留符号链接3.2 仅复制更…...

树结构数据在table中回显 treeselect disabled

<el-table-column label"产业认定" align"center" prop"industryIdentification"><template slot-scope"scope"><treeselectv-if"scope.row.industryIdentification"v-model"scope.row.industryIdentif…...

BOA服务器移植

BOA服务器移植 1、源码下载 http://www.boa.org/ News! (last updated 23 February 2005) Latest Released Version (0.94.13) here (signature here) --- 下载地址1.1 boa简介&#xff1a; 其可执行代码只有大约60KB左右&#xff0c;Boa是一个单任务的HTTP服务器&#xff…...

洛谷刷题入门篇:顺序结构

链接如下&#xff1a;https://www.luogu.com.cn/training/100#problems 一、Hello,World! 题目链接&#xff1a;https://www.luogu.com.cn/problem/B2002 题目描述 编写一个能够输出 Hello,World! 的程序。 提示&#xff1a; 使用英文标点符号&#xff1b;Hello,World! 逗…...

LVS+Haproxy

LVSHaproxy 一、Haproxy简介1.1、Haproxy应用分析1.2、Haproxy的特性1.3、常见负载均衡策略1.4、LVS、Haproxy、Nginx区别1.5、 Haproxy的优点1.6、常见的Web集群调度器 二、Haproxy部署实例四、日志定义优化 一、Haproxy简介 Haproxy 是一个使用C语言编写的自由及开放源代码软…...

Linux知识

文章目录 一、Apt1、查看操作系统信息2、换源3、比较4、用法5、ubuntu获取源码 二、pkg-config三、调试glibc 一、Apt 1、查看操作系统信息 使用以下命令查看本机的操作系统和位数信息&#xff1a; uname -m && cat /etc/*release输出&#xff1a; x86_64 DISTRIB_I…...

Java基础(三)

前言&#xff1a;前面主要涉及到java的基本语法&#xff0c;接下来本篇博客主要记录Java中Collections类、泛型、以及File类、IO流的学习。 目录 数据结构 泛型 集合 分类 Collection的分类 collection常用方法 collection遍历方式 迭代器 for循环 Lambda表达式 Lis…...

[Firefox/快捷键] 禁用Ctrl-W快捷键

最近给Firefox这一快捷键坑了几次。恰好发现在CMU也有人遇到类似的烦恼&#xff0c;找到一篇基于Linux的教程。 我使用的是Windows&#xff0c;所以根据自己的情况做了些修改&#xff0c;成功了。小众需求就犯懒直接将笔记贴上了&#xff0c;如果有谁用得上的话&#xff0c;我写…...

Git常用命令diff和mv

Git常用命令diff和mv 1、diff # 查看工作区和暂存区所有文件的对比 # 该命令可以显示尚未添加到stage的文件的变更 $ git diff# 查看工作区和暂存区单个文件的对比 $ git diff file# 显示暂存区和上一个commit的差异 # 查看暂存区与指定提交版本的不同,版本可缺省为HEAD $ gi…...

【谢希尔 计算机网络】第3章 数据链路层

数据链路层 数据链路层的地位 网络中的主机、路由器等都必须实现数据链路层局域网中的主机、交换机等都必须实现数据链路层不同链路层可能采用不同的数据链路层协议 数据链路层信道类型 点对点信道 使用一对一的点对点通信方式广播通信 必须使用专用的共享系电脑协议来协调这些…...

《DevOps实践指南》- 读书笔记(九)

DevOps实践指南 25. 附录附录 1 DevOps 的大融合精益运动敏捷运动Velocity 大会运动敏捷基础设施运动持续交付运动丰田套路运动精益创业运动精益用户体验运动Rugged Computing 运动 附录 2 约束理论和核心的长期冲突附录 3 恶性循环列表附录 4 交接和队列的危害附录 5 工业安全…...

数据库数据恢复-SQL SERVER数据库分区被格式化的数据恢复方案

SQL SERVER数据库故障类型&#xff1a; 1、SQL SERVER数据库文件被删除。 2、SQL SERVER数据库所在分区格式化。 3、SQL SERVER数据库文件大小变为“0”。 4、使用备份还原数据库时覆盖原数据库。 SQL SERVER数据库故障原因&#xff1a; 1、人为误操作。 2、文件系统损坏&#…...

ubuntu安装ffmpeg

Ubuntu安装FFMPEG Ubuntu安装FFMPEG 安装FFMPEG&#xff08;支持GPU加速&#xff09; 1.安装ffnvvodec2.安装libx2643.安装ffmpeg4.查看并测试5.卸载 安装FFMPEG&#xff08;CPU版本&#xff09; 安装FFMPEG&#xff08;支持GPU加速&#xff09; 默认已经安装cuda10.2、cud…...

CentOS上安装Docker

要在CentOS上安装Docker&#xff0c;可以按照以下步骤进行操作&#xff1a; 更新系统软件包列表&#xff1a; sudo yum update安装必要的软件包&#xff0c;以便可以通过HTTPS使用仓库并使用最新的内核&#xff1a; sudo yum install -y yum-utils device-mapper-persistent…...

三相PWM整流器有限集模型预测电流控制MATLAB仿真模型

微❤关注“电气仔推送”获得资料 模型简介&#xff1a; 整流器交流侧为三相对称电压&#xff0c;220V/50Hz&#xff0c;直流侧为760V&#xff0c;且电压可调。其中模型预测模块采用matlab-function模块实现&#xff0c;交流侧电感的标称值为0.01H&#xff0c;如果不是&#x…...

【JavaEE】多线程(三)

多线程&#xff08;三&#xff09; 续上文&#xff0c;多线程&#xff08;二&#xff09;&#xff0c;我们已经讲了 创建线程Thread的一些重要的属性和方法 那么接下来&#xff0c;我们继续来体会了解多线程吧~ 文章目录 多线程&#xff08;三&#xff09;线程启动 startsta…...

9.25day5---Qt

登录页面设计&#xff0c;建立用户注册以及登录的数据库&#xff0c;数据库保存用户名和密码 &#xff08;ps:本篇只完成了登录功能&#xff0c;其他功能&#xff0c;请见下篇嘿嘿。&#xff09; 再次注册则失败&#xff1a; 代码如下&#xff1a; 头文件&#xff1a; 登录…...

wpf制作自定义控件,并触发外部路由事件

目的是在前端增加一个自定义控件里的button后&#xff0c;按下动作可以调用使用该控件的页面的事件 首先在前端增加自定义控件里加入一个button&#xff0c;在其cs页面里注册点击事件 var btnAdd GetTemplateChild("btnAdd") as FlatButton;if (btnAdd ! null){btn…...

axios全局路由拦截的设置方法

一个项目中如果http请求发生了错误/异常&#xff0c;比如返回码4xx&#xff08;表示没有授权&#xff0c;登录过期等&#xff09;&#xff0c;我们希望能够在axios在第一时间就能拦截获取到&#xff0c;然后直接提示报错的错误信息&#xff0c;而不是在发起请求的地方&#xff…...

XSS跨站脚本攻击

XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击,XSS属于客户端攻击&#xff0c;受害者最终是用户&#xff0c;在网页中嵌入客户端恶意脚本代码&#xff0c;最常用javascript语言。&#xff08;注意&#xff1a;叠成样式表CSS已经被占用所以叫XSS&#xff09…...

Java8实战-总结33

Java8实战-总结33 重构、测试和调试使用 Lambda 重构面向对象的设计模式策略模式模板方法 重构、测试和调试 使用 Lambda 重构面向对象的设计模式 新的语言特性常常让现存的编程模式或设计黯然失色。比如&#xff0c; Java 5中引入了for-each循环&#xff0c;由于它的稳健性和…...

Postman 的使用教程(详细)

Postman 使用教程 1. 是什么 Postman 是一个接口测试工具软件&#xff0c;可以帮助开发人员管理测试接口。 官网&#xff1a;https://www.getpostman.com/ 2. 安装 建议通过官网下载安装&#xff0c;不要去那些乱七八糟的下载平台&#xff0c;或者留言获取 官网下载地址&am…...

单元测试 —— JUnit 5 参数化测试

JUnit 5参数化测试 目录 设置我们的第一个参数化测试参数来源 ValueSourceNullSource & EmptySourceMethodSourceCsvSourceCsvFileSourceEnumSourceArgumentsSource参数转换参数聚合奖励总结 如果您正在阅读这篇文章&#xff0c;说明您已经熟悉了JUnit。让我为您概括一下…...

石门县建设局网站/谷歌应用商店

文章目录前言一、现象二、原因三、解决步骤四、示例五、参考前言 在你的iOS团队中&#xff0c;如果在使用持续集成来完成自动化打包分发的工作&#xff0c;你可能会了解如何使用一些命令行工具来构建ipa文件&#xff0c;其中一款使用较为广泛的是xcodebuild。 在我们的团队中…...

做网页和做网站的区别/怎么免费建个人网站

Python第二十一课(反射/元类) >>>思维导图>>>中二青年 反射reflect 什么是反射, 其实是反省,自省的意思 反射指的是一个对象应该具备,可以检测,修改,增加自身属性的能力 反射就是通过字符串操作属性 涉及的四个函数,这四个函数就是普通的内置函数 没有双下…...

做做做做网站/app推广员怎么做

在统计应用推广或ASO效果时&#xff0c;我们通常会碰到很多数据指标&#xff0c;而这些数据指标的实际数值不仅可以显示出应用的性能好坏&#xff0c;还能帮我们找出运营过程中的不足。 接下来&#xff0c;就和大家分享一些非常重要的数据指标&#xff0c;希望能帮大家及时把控…...

洋桥网站建设/世界疫情最新数据

1. 重点关注地域&#xff08;base&#xff09; 2. 武汉&#xff0c;成都&#xff0c;西安&#xff0c;重庆, 杭州。...

我的世界做图片网站/口碑营销什么意思

集合-set集合是高中数学中的一个概念一堆确定的无序的唯一的数据&#xff0c;集合中每一个数据成为一个元素#集合的定义s set()print(type(s))print(s)print("*"*30)#此时&#xff0c;大括号内一定要有值&#xff0c;否则定义出的是一个dicts {}print(type(s))print(…...

wordpress站点安装/百度灰色关键词代做

问题描述&#xff1a; rmq消息队列中接收到了消息&#xff0c;并由消费者消费&#xff0c;由于下游服务异常&#xff0c;导致异常抛出&#xff0c;消费者消费消息失败&#xff0c;导致消息一直处于unack&#xff0c;return给rmq-server&#xff0c;重新被消费&#xff0c;但消费…...