SpringBoot热部署重启关闭(DevTools)

一、DevTools依赖

1、DevTools简介

在Spring Boot项目中,spring-boot-devtools模块提供了多种开发时的便利功能,其中最显著的是restart和livereload特性,它们分别用于应用代码的热重启和前端资源的即时重载。

devtools依赖:

   <!-- spring-boot-devtools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> <!-- 表示依赖不会传递 --></dependency>

1.1 Restart 特性

spring-boot-devtools中的restart特性允许Spring Boot应用在检测到代码或配置文件发生变化时自动重启,从而避免了手动重启应用的麻烦。这在开发阶段可以极大地提高迭代速度,因为开发者可以立即看到代码变更的效果。

配置参数如下:

  • spring.devtools.restart.enabled: 控制是否开启restart功能,默认为true。
  • spring.devtools.restart.additional-paths: 指定除了默认的class path之外,还需要监视的额外文件夹路径。
  • spring.devtools.restart.additional-excludes: 指定不应该被监视的额外路径,即使这些路径在additional-paths中被指定。
  • spring.devtools.restart.exclude: 指定不被监视的文件或目录模式,例如**/*.properties可以排除所有属性文件。

1.2 LiveReload 特性

livereload特性主要针对前端资源如HTML、CSS和JavaScript文件,当这些文件发生更改时,浏览器会自动刷新页面,无需手动刷新。

配置参数如下:

  • spring.devtools.livereload.enabled: 控制是否开启LiveReload功能,默认为true。
  • spring.devtools.livereload.port: LiveReload服务器监听的端口,默认为35729。

spring-boot-devtools的restart和livereload特性通过自动化重启和资源重载,极大地提升了开发效率,特别是在频繁修改代码和前端资源的情况下。然而,这些特性通常只在开发环境中使用,生产环境应禁用以避免不必要的重启和安全风险。

二、关闭热部署重启配置

devtools模块的 restart和 livereload特性默认都是开启状态。

如果关闭热部署热部署重启,我们需要在 applicaton.yml文件中关闭它。

spring:# devtools模块配置devtools:restart:# 热部署开关enabled: falselivereload:enabled: false

关闭热部署重启之后,我们发现热部署重启还是生效的。这时,我们需要重点注意这个弹框提示。并在IDEA做额外配置。

在这里插入图片描述

三、彻底关闭热部署重启流程

1、为什么会出现这个提示?

IDEA(IntelliJ IDEA)在Debug模式下,当你修改了源代码并重新编译后,如果检测到类文件发生了变化,它可能会弹出提示“Some classes have been changed, Reload changed classes now?”。这个提示是IDEA的热加载(HotSwap)功能的一部分,用于询问你是否希望立即重新加载这些更改的类文件,以便在不重启Debug会话的情况下查看更改的效果。

  • 热加载(HotSwap)功能:IDEA支持在Debug模式下对正在运行的Java应用程序进行类文件的热更新。当你修改了源代码并重新编译后,IDEA会检测到这些变化,并询问你是否希望将这些更改应用到正在运行的程序上。
  • 默认设置:IDEA的默认设置可能会在某些情况下自动弹出这个提示,尤其是当你第一次在Debug模式下修改并重新编译类文件时。

2、如何取消这个提示?

如果你不希望每次修改类文件后都看到这个提示,可以在 IDEA的 settings 中 调整HotSwap设置来取消它。

打开IDEA的设置(Preferences/Settings > Build, Execution, Deployment > Debugger > HotSwap)。

可以找到 Reload classes after compilation这一选项,并根据你的需求选择Always、Never或Ask(默认)。

  • Never:将阻止IDEA在编译后自动弹出重新加载类的提示。但请注意,这样做可能会阻止你查看对正在运行的Debug会话所做的更改。
  • Always:将自动重新加载更改的类,而不会弹出提示。
  • Ask(默认):将保留当前的默认行为,即每次编译后都会询问你是否希望重新加载类。

如果项目源代码更改之后,不需要自动重新加载更改的类,而是手动重启项目。所以你就可以勾选 Never。

3、彻底关闭热部署重启配置

项目中依赖了 devtools模块,但是我想彻底关闭它的热部署重启,简单两步即可。

(1)关闭热部署重启配置

spring:# devtools模块配置devtools:restart:# 热部署开关enabled: falselivereload:enabled: false

(2)HotSwap设置为 Never

在这里插入图片描述

– 求知若饥,虚心若愚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在调整节拍时间的过程中保持生产流程的稳定性?

在快节奏的工业生产领域&#xff0c;节拍时间&#xff08;Takt Time&#xff09;——即完成一个完整产品所需的标准时间&#xff0c;是维持生产效率和流程稳定性的关键指标。然而&#xff0c;市场需求的波动、技术升级或是生产线的微调&#xff0c;都可能要求我们对节拍时间进行…

Redis-主从模式

目录 前言 一.主从节点介绍 二.配置redis主从结构 二.主从复制 四.拓扑结构 五.数据同步 全量复制&#xff08;Full Sync Replication&#xff09; 局部复制&#xff08;Partial Replication&#xff09; Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 前言 …

docker安装phpMyAdmin

直接安装phpMyAdmin需要有php环境&#xff0c;比较麻烦&#xff0c;总结了使用docker安装方法&#xff0c;并提供docker镜像。 1.docker镜像 见我上传的docker镜像&#xff1a;https://download.csdn.net/download/taotao_guiwang/89595177 2.安装 1).加载镜像 docker load …

AC/DC和DC/DC开关电源的传导和辐射原理

电磁干扰&#xff08;EMI&#xff09;始终是开关电源&#xff08;AC/DC和DC/DC转换器&#xff09;的潜在问题。如今的电源有很好的电磁发射和抗干扰的能力。但为了满足特定的应用要求&#xff0c;仍要有正确的滤波电路以确保满足标准的要求。 基于AC/DC和DC/DC电源模块的很佳EM…

CentOS7使用yum安装MySQL

废话不多说&#xff0c;直接上干货 1、CentOS7的yum源中默认是没有mysql的&#xff0c;我们先下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2、安装mysql-community-release-el7-5.noarch.rpm包 sudo rpm -ivh mysql-community-r…

商城购物系统

下载在最后 技术栈: ssmmysqljsp 展示: 下载地址: CSDN现在上传有问题,有兴趣的朋友先收藏.正常了贴上下载地址 备注:

Hbase简介和快速入门

一 Hbase简介 1 HBase定义 Apache HBase™ 是以hdfs为数据存储的&#xff0c;一种分布式、可扩展的NoSQL数据库。 2 HBase数据模型 HBase的设计理念依据Google的BigTable论文&#xff0c;论文中对于数据模型的首句介绍。Bigtable 是一个稀疏的、分布式的、持久的多维排序map…

Idea常用快捷键:设置自动导包

Idea设置自动导包 【File】→【Setting】(或使用快捷键【Crlt Shift S】)打开Setting设置。点击【Editor】→【General】→【Auto Import】。勾选自定导包的选项&#xff0c;并确定&#xff0c;如下&#xff1a; Addunambiguousimportsonthefly&#xff1a;添加明确的导入 …

长上下文语言模型与RAPTOR 方法

在科技领域的前沿&#xff0c;长上下文语言模型&#xff08;Long Context LLMs&#xff09;和新兴检索方法如RAPTOR 正在引发广泛关注。本文将围绕这些技术展开讨论&#xff0c;并探讨它们在实际应用中的创新性和科技性。 长上下文语言模型的崛起 近几周来&#xff0c;随着新型…

基于springboot+vue+uniapp的戏曲文化苑小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

Java两表查询的方法(一对一,一对多,多对多)

一、配置环境&#xff1a; 首先我们需要Maven环境; 源码&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"…

yandex图标点选验证码YOLOV8识别案例

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 某yandex图标点选验证码如下: 使用过yolov8的小伙伴可能都知道,这种直接打个标注,基本上就可以了,至于问题图片由于不能很好的切割做分类,所以干脆也做成目标…

基于图卷积神经网络(GCN)的高光谱图像分类详细教程(含python代码)

目录 一、背景 二、基于卷积神经网络的代码实现 1、安装依赖库 2、建立图卷积神经网络 3、建立数据的边 4、训练模型 5、可视化 三、项目代码 一、背景 图卷积神经网络&#xff08;Graph Convolutional Networks, GCNs&#xff09;在高光谱图像分类中是一种有效的方法…

CSS实现文本溢出处理

1.单行文本溢出 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wid…

Dependency Injection: 如何解决依赖注入失败问题

Dependency Injection: 如何解决依赖注入失败问题 &#x1f489; **Dependency Injection: 如何解决依赖注入失败问题 &#x1f489;**摘要引言正文内容1. 依赖注入的基础概念代码示例&#xff1a;构造函数注入 2. 依赖注入失败的常见原因2.1 未能找到依赖的实例2.2 循环依赖2.…

App测试分发的秘密:如何让你的应用程序快速上线

App测试分发的重要性 在移动应用程序的开发过程中&#xff0c;测试分发是一个非常重要的环节。它可以帮助开发者快速地将应用程序推广到目标用户手中&#xff0c;收集反馈&#xff0c;进行bug修复和优化&#xff0c;从而提高应用程序的质量和用户体验。但是&#xff0c;测试分…

linux脚本:自动检测的bash脚本,用于检查linux的系统性能

目录 一、要求 二、脚本介绍 1、脚本内容 2、解释 3、使用方法&#xff1a; &#xff08;1&#xff09;脚本文件 &#xff08;2&#xff09;赋予权限 &#xff08;3&#xff09;执行结果 三、相关命令介绍 1、top &#xff08;1&#xff09;定义 &#xff08;2&…

Layui修改表格分页为英文

Layui修改表格分页为英文 1.前言2.Laypage属性 1.前言 主要记录初次使用Layui没有好好看官方文档踩坑&#xff0c;修改了源码才发现可以自定义 使用的Layui版本2.9.14 2.Laypage属性 Laypage属性中带的有自定义文本的属性 示例代码 table.render({.......page: {skipText: …

2.4GHz射频前端集成芯片:AT2401C芯片中文资料

关于AT2401C的基本资料&#xff1a; AT2401C是一款面向Zigbee&#xff0c;无线传感网络以及其他2.4GHz频段无线系统的全集成射频功能的射频前端单芯片。 那么射频放大器的作用是什么&#xff1f;它是用来放大来自射频信号源的低功率信号&#xff0c;放大到较高的功率后&#xf…

7. 运行时数据区-栈

栈的分类 栈分为Java虚拟机栈还有本地方法栈&#xff1a; Java虚拟机栈&#xff1a;用于保存Java中的方法相关的内容本地方法栈&#xff1a;用于保存在Java中使用native 标记的用C来实现方法 由于hotspot的作者发现使用一个栈就可以保存以上两个部分的内容&#xff0c;所以在…