Spring Boot05-热部署

一、Spring Boot 启动热部署

Spring Boot 启动“热部署(Hot Deployment)”,可以让你在不重启项目的情况下快速看到代码变更的效果(特别是前后端调试阶段)。


1-1、什么是热部署?

热部署是指:

修改 Java 或模板(如 HTML、Thymeleaf)代码后,无需手动重启服务,Spring Boot 能自动感知并重新加载类或资源,节省重启时间,提高开发效率。

热部署的过程:

1、重启(restart):自定义开发的代码,包括:页面,类,配置文件......,加载位置restart类加载器

2、重载(reload):jar包(基本不会有变化),加载位置base类加载器

热部署,仅仅代码restart过程,而程序第一次启动的时候,既有restart过程,又有reload过程。


1-2、常用热部署方式

Spring Boot 推荐使用的热部署工具是 Spring Boot DevTools


1-3、使用 Spring Boot DevTools 实现热部署

1. 添加依赖:开启开发者工具

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope> <!-- 只在开发环境有效 --><optional>true</optional> <!-- 可选依赖,防止被打包进生产环境 -->
</dependency>

2. IDE 设置:激活热部署

Spring Boot DevTools 默认基于 类文件变更触发重启,因此你需要确保:

(1). 启用了自动构建:
  1. File → Settings → Build, Execution, Deployment → Compiler

  2. 勾选:✔️ Build project automatically

(2). 让 IntelliJ 在修改文件后自动编译:

Advanced Settings :✔️ “Allow auto-make to start even if developed application is currently running”

这样只要你保存了 Java 文件,IDE 就会自动编译触发 DevTools 热部署。

此时,页面发生了变化,不会参加热部署。 

设置不参与热部署的文件/文件夹:


 

1-4、DevTools 热部署行为总结

变更内容是否自动热部署说明
Java 类(Controller, Service)✅ 是自动重新加载
静态资源(HTML, CSS, JS)✅ 是即时刷新页面
配置文件(application.properties)❌ 否需要重启才能生效
引入新依赖❌ 否需要 重新启动项目

1-5、禁用热部署的功能呢

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

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

相关文章

网站域名备案和服务器有关系吗

域名备案的那些事儿域名备案&#xff0c;简单来说&#xff0c;就是把你的网站信息登记到相关管理部门那里。这就好比你开个小店&#xff0c;得去工商局登记一下&#xff0c;让人家知道你在干啥。根据我国相关规定&#xff0c;凡是使用大陆境内服务器提供服务的网站&#xff0c;…

2025华为ODB卷-推荐多样性200分-三语言题解

📌 华为OD机试真题精选 2025B卷合集 推荐多样性200分 问题描述 A先生正在设计一个推荐系统,需要考虑多样性,要求从多个列表中选择元素。系统一次性需要返回 N N N 屏数据(窗口数量),每屏展示 K K

ZeroMQ源码深度剖析:网络机制与性能优化实战

目录1 发布订阅过滤的高效实现2 ZeroMQ的核心优势3 常见Socket类型及应用4 异步连接实现机制5 断线重连机制6 高水位线&#xff08;HWM&#xff09;深度解析7 消息丢失与错误处理8 消息帧&#xff08;Frame&#xff09;高级特性9 高效性实现原理10 无锁消息队列设计11 零拷贝实…

[数据库]Neo4j图数据库搭建快速入门

[数据库]图数据库基础入门 概念 图数据库是一种使用图结构&#xff08;节点、边和属性&#xff09;进行数据存储和查询的数据库管理系统。与传统的关系型数据库不同&#xff0c;图数据库专注于实体之间的关系&#xff0c;特别适合处理高度互联的数据。常见的图数据库包括&#…

本地数据库有数据,web页面无信息显示,可能是pymysql的版本问题【pymysql连接本地数据库新旧版本的区别】

pymysql连接本地数据库新旧版本的区别新版本老版本python web下的settings文件 新版本 的pymysql 连接本地数据库&#xff1a; mysql_conn pymysql.connect(hostself.conn_infos["HOST"],userself.conn_infos["USER"],passwordself.conn_infos["PAS…

【Linux-云原生-笔记】Haproxy相关

一、概念HAProxy&#xff08;High Availability Proxy&#xff09;是一款开源的高性能 TCP/HTTP 负载均衡器 和 反向代理 软件&#xff0c;被广泛应用于构建高可用、高并发的现代网络架构。核心功能&#xff1a;负载均衡&#xff08;Load Balancing&#xff09;支持四层&#x…

智慧能源合同解决方案

01 能源行业合同管理核心痛点 1&#xff09;长期风险沉淀与动态环境失配&#xff1a;合同稳定性的根本矛盾 超长周期下的风险累积&#xff1a;20~30年的购售电协议&#xff08;PPA&#xff09;、EPC合同需覆盖技术迭代&#xff08;如光伏组件衰减率&#xff09;、政策转向&am…

MeterSphere平台,接口自动化脚本编写常用操作

文章目录1. 前置准备2. 项目环境设置3. 创建接口3.1 创建接口API3.2 测试接口API3.3 设置接口case4. 场景接口自动化4.1 创建自动化场景4.2 场景化操作说明4.2.1 设置脚本场景变量4.2.2 接口列表导入4.2.3 场景导入4.2.4 自定义请求4.2.5 事务控制器4.2.6 等待控制器4.2.7 循环…

C 语言介绍

C语言是由Dennis Ritchie开发的&#xff0c;用于创建与硬件设备&#xff08;例如驱动程序&#xff0c;内核等&#xff09;直接交互的系统应用程序。C编程被认为是其他编程语言的基础&#xff0c;这就是为什么它被称为母语。C是一种功能强大的通用编程语言。它可以用于开发操作系…

AI产品经理面试宝典第48天:产品设计与用户体验优化策略

1. 用户体验分析与产品设计逻辑 1.1 问:如何通过用户反馈优化AI产品体验? 答: 建立反馈闭环机制:通过应用内评分、用户访谈、行为埋点三维度收集数据,例如某语音助手产品通过NLP分析用户纠错语句,发现"误唤醒"问题占比37%; 优先级排序模型:采用Kano模型量化…

基于springboot的在线教育系统(源码+论文)

一、开发环境 本在线教育系统主要采用以下技术栈进行开发&#xff1a; B/S结构&#xff1a;基于浏览器/服务器模式&#xff0c;便于用户通过互联网访问系统&#xff0c;无需安装客户端软件。Spring Boot框架&#xff1a;简化了新Spring应用的初始搭建及开发过程&#xff0c;提…

Ubuntu 系统上部署禅道

在 Ubuntu 系统上部署禅道可以按照以下步骤进行&#xff0c;以下是基于禅道开源版的部署流程&#xff1a; 1. 安装必要依赖 首先安装禅道运行所需的环境&#xff08;以 Ubuntu 20.04/22.04 为例&#xff09;&#xff1a; bash # 更新系统包 sudo apt update && sudo…

【vue-8】Vue3 Options API 生命周期函数全面解析

在 Vue.js 开发中&#xff0c;理解组件的生命周期是构建健壮应用程序的关键。虽然 Vue3 引入了 Composition API&#xff0c;但 Options API 仍然是许多开发者的首选&#xff0c;特别是对于从 Vue2 迁移的项目或更喜欢基于选项的代码组织的团队。本文将深入探讨 Vue3 中 Option…

周志华《机器学习导论》第8章 集成学习 Ensemble Learning

目录 8.1 个体与集成 8.2 Boosting Ada&#xff08;Adaptive&#xff09;Boost 8.3 Bagging 8.4 随机森林 8.5 结合策略 8.5.1 平均法 8.5.2 投票法 8.5.3 学习法 8.6 多样性 8.6.1 误差-分歧分解 error-ambiguity 8.6.2 多样性度量 8.6.3 多样性增强 8.1 个体与集…

Embassy实战:Rust嵌入式异步开发指南

嵌入式异步框架 Embassy 实例 以下是关于嵌入式异步框架 Embassy 的实用示例,涵盖常见外设操作、多任务协作和硬件交互场景。示例基于STM32和Raspberry Pi Pico等平台,使用Rust语言编写。 GPIO 控制 use embassy_stm32::gpio::{Input, Output, Pull, Speed}; use embassy_…

ChatGPT桌面版深度解析

ChatGPT桌面版深度解析&#xff1a;功能、安装与高效使用全攻略 一、核心功能全景解析 &#xff08;一&#xff09;全场景交互体系 全局热键唤醒 支持MacOS&#xff08;Option空格&#xff09;与Windows&#xff08;Alt空格&#xff09;全局快捷键&#xff0c;实现跨应用无缝调…

RLVR的一种扩展方案--RLPR论文阅读

论文链接&#xff1a;RLPR: EXTRAPOLATING RLVR TO GENERAL DOMAINS WITHOUT VERIFIERS 文章目录简介RLPRRLVR概率奖励/Probability Reward奖励设计标准差过滤总结简介 可验证奖励的强化学习(Reinforcement Learning with Verifiable Rewards, RLVR)在提升大语言模型&#xff…

odoo欧度小程序——添加用户

odoo欧度小程序添加登录用户 1. 直接在登录用户页面添加用户点击 添加登录用户输入用户和密码&#xff0c;点击登录验证进入odoo页面2. 在用户切换页面添加用户点击选择切换用户点击域名弹出菜单点击添加新用户输入用户和密码&#xff0c;点击登录验证进入odoo页面

Docker 应用数据备份、迁移方案

一、为什么要做Docker数据备份1、保障数据与配置的安全性防止数据丢失&#xff1a;Docker 容器本身是 “临时性” 的&#xff08;基于镜像创建&#xff0c;删除后数据默认丢失&#xff09;&#xff0c;但容器中运行的应用&#xff08;如数据库、日志服务&#xff09;会产生持久…

【PTA数据结构 | C语言版】强连通分量

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 本题请你编写程序&#xff0c;输出给定有向图中的各个强连通分量&#xff0c;并统计强连通分量的个数。 输入格式&#xff1a; 输入首先在第一行给出 2 个整数&#xff0c;依次为有向图的顶点数 n&…