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,一经查实,立即删除!

相关文章

STL Map的使用和性能issue

1、高效地访问 1&#xff09;隐式插入问题 map初学者会直接用中括号访问&#xff0c;方便但是有代价&#xff1a;key不存在的时候还会隐式插入&#xff0c; 尤其对于LRU缓存设计&#xff0c;用这个就是灾难&#xff0c;会导致脏数据&#xff0c; 规避方案&#xff0c;cache的…

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

在快节奏的工业生产领域&#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 前言 …

SLAM:corners:Measuring Corner Properties-1999【方法解析-1】

paper:Measuring Corner Properties 目录 摘要1. 引言2. 测量属性2.1 对比度和夹角详细解析摘要 我们描述了测量灰度角点以下属性的方法:夹角、方向、对比度、钝度(或顶点的圆度)以及边界曲率(适用于尖点)。与大多数已发表的提取这些属性的方法不同,这些新方法相对简单…

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 …

NodePort:固定端口

NodePort:固定端口 ## ************************************************** # 测试固定端口 # ## ************************************************* apiVersion: apps/v1 kind: Deployment metadata:name: kevin-fixed-portnamespace: default spec:# 副本数量#replicas: …

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…

AI大模型Prompt提示词工程使用详解

AI大模型Prompt提示词工程使用详解 在人工智能&#xff08;AI&#xff09;的浩瀚宇宙中&#xff0c;大型预训练模型&#xff08;Large Language Models, LLMs&#xff09;如GPT系列、BERT等&#xff0c;以其卓越的自然语言处理&#xff08;NLP&#xff09;能力&#xff0c;正逐…

策略模式面试三道题

策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以相互替换&#xff0c;且算法的变化不会影响使用算法的客户。在面试中&#xff0c;关于策略模式的题目可以从基本概…

javascript deriveKey和deriveBits()由主密钥派生出新的密钥进行加密

deriveKey 方法的完整示例&#xff0c;演示如何使用 HMAC 作为密钥派生函数&#xff08;KDF&#xff09;来从一个给定的秘密&#xff08;如密码&#xff09;派生出一个新的 AES 加密密钥。 //创建一个函数来生成随机盐function getRandomSalt(length){let arraynew Uint8Array…

商城购物系统

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

React基础教程:选项卡案例

文章目录 6.1 初始化选项卡6.2 数据请求+模糊搜索6.1 初始化选项卡 新建12-卖座位选项卡.js文件 通过判断当前的索引,来绑定className属性,进行选项卡激活的显示,如果当前的索引等于index,那么就绑定属性active className={this.state.current === index ? active : }i…

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;添加明确的导入 …

【边缘计算与IoT】边缘计算的概念和在IoT中的应用

边缘计算与IoT&#xff1a;边缘计算的概念和在IoT中的应用 目录 引言边缘计算的概念 什么是边缘计算边缘计算的工作原理 边缘计算的优势 低延迟带宽优化数据隐私和安全高可靠性 边缘计算在IoT中的应用 智能家居工业自动化智慧城市医疗健康 边缘计算的技术挑战 计算资源限制数…

PHP完整表单实例

在PHP中创建一个完整的表单实例涉及多个步骤&#xff0c;包括设计HTML表单、处理表单提交、验证用户输入以及&#xff08;可选地&#xff09;将数据存储到数据库。以下是一个详细的教程&#xff0c;指导你完成整个过程。 第一步&#xff1a;设计HTML表单 首先&#xff0c;你需…

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

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

在Windows中使用命令行将文件夹内txt文件合并成一个

打开命令提示符窗口导航到包含要合并的TXT文档的文件夹中。命令示例&#xff1a;cd C:\MyFiles在命令提示符窗口中键入以下命令&#xff1a;copy *.txt combined.txt按Enter键运行该命令。所有.TXT文档将合并到名为“Combined.TXT”的新文件中。

基于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包&#…