Spring Boot 熱部署詳解,包含詳細的配置項說明


Spring Boot 熱部署詳解

在這里插入圖片描述


1. 熱部署簡介

熱部署(Hot Deployment)允許在應用運行時修改代碼或配置文件,無需重啟應用即可使更改生效。Spring Boot 通過 spring-boot-devtools 模塊實現這一功能,其核心依賴于 LiveReload 技術和自動重啟機制。


2. 啟用熱部署的步驟
  1. 添加依賴
    pom.xml 中引入 spring-boot-devtools,并設置 <optional>true</optional> 避免傳遞依賴:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>
    </dependency>
    
  2. 重啟應用
    首次啟用需重啟應用,之后修改代碼或資源文件時,應用會自動檢測并重啟。

  3. 驗證配置
    查看日志確認 LiveReload 服務器啟動:

    o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
    

3. 熱部署核心原理
  • LiveReload:通過 WebSocket 監聽文件變化,通知瀏覽器或客戶端刷新。
  • 自動重啟:監控類路徑(classpath)的文件變化,觸發應用重啟。

4. 配置項詳解

以下是 spring-boot-devtools 的關鍵配置項,通過 application.propertiesapplication.yml 配置:

配置項默認值說明
spring.devtools.livereload.enabledtrue啟用/禁用 LiveReload 服務器。
spring.devtools.livereload.port35729LiveReload 服務器端口。
spring.devtools.restart.additional-exclude空字符串在默認排除路徑基礎上,新增不觸發重啟的文件夾(如 src/main/resources)。
spring.devtools.restart.additional-paths空字符串在默認監控路徑基礎上,新增需觸發重啟的文件夾(如 src/main/java)。
spring.devtools.restart.enabledtrue啟用/禁用自動重啟功能。
spring.devtools.restart.excludeMETA-INF/maven/**,<br>**/src/main/resources/**,<br>**/src/main/static/**,<br>**/src/main/public/**,<br>**/src/main/templates/**,<br>**/*Test.class,<br>**/*Tests.class,<br>git.properties默認排除路徑(修改這些路徑的文件不會觸發重啟)。
spring.devtools.restart.poll-interval1000ms檢測文件變化的時間間隔(單位:毫秒)。
spring.devtools.restart.quiet-period400ms在無變化時,觸發重啟前的靜默期(避免頻繁重啟)。
spring.devtools.restart.trigger-file空字符串指定一個文件,修改該文件時觸發重啟(如 trigger.txt)。

5. 配置項使用示例
# 禁用 LiveReload
spring.devtools.livereload.enabled=false# 自定義 LiveReload 端口
spring.devtools.livereload.port=35730# 新增排除路徑(如日志文件)
spring.devtools.restart.additional-exclude=logs/**# 新增監控路徑(如自定義配置目錄)
spring.devtools.restart.additional-paths=config/# 設置觸發文件
spring.devtools.restart.trigger-file=reload.txt

6. 注意事項
  • 排除路徑:默認排除靜態資源(如 src/main/resourcespublic)和測試類,修改這些文件不會觸發重啟。
  • IDE 配置:需確保 IDE(如 IntelliJ、Eclipse)支持自動編譯,否則修改代碼后需手動保存。
  • 遠程調試:若通過遠程調試啟動應用,需添加參數 -noverify 以提升重啟速度:
    java -noverify -jar your-app.jar
    

7. 完整配置項表格總結
配置項默認值說明
spring.devtools.livereload.enabledtrue是否啟用 LiveReload 服務器。
spring.devtools.livereload.port35729LiveReload 服務器端口。
spring.devtools.restart.additional-exclude空字符串新增不觸發重啟的路徑。
spring.devtools.restart.additional-paths空字符串新增需觸發重啟的路徑。
spring.devtools.restart.enabledtrue是否啟用自動重啟。
spring.devtools.restart.exclude默認路徑(見上文)默認排除路徑,修改這些路徑的文件不會觸發重啟。
spring.devtools.restart.poll-interval1000ms文件變化檢測間隔。
spring.devtools.restart.quiet-period400ms觸發重啟前的靜默期。
spring.devtools.restart.trigger-file空字符串指定觸發重啟的文件。

8. 常見問題
  • Q:修改代碼后應用未重啟?
    A:檢查是否保存文件,IDE 是否自動編譯,或排除路徑是否包含修改的文件。
  • Q:LiveReload 未生效?
    A:確保瀏覽器插件(如 LiveReload 插件)已安裝并啟用,且端口未被占用。
  • Q:如何禁用特定模塊的熱部署?
    A:在 exclude 中添加路徑,或通過 additional-exclude 擴展排除列表。

通過以上配置和步驟,可靈活控制 Spring Boot 應用的熱部署行為,提升開發效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/78984.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/78984.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/78984.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳細解讀 box-sizing: border-box;

代碼解讀 * {box-sizing: border-box; } 解釋&#xff1a; * - 這是CSS的通用選擇器&#xff0c;表示匹配文檔中的所有元素 box-sizing: border-box; - 設置元素的盒模型計算方式為border-box 盒模型說明&#xff1a; 默認情況下&#xff0c;CSS使用content-box盒模型&…

《一文講透》第7期:KWDB 巧用標簽與索引優化查詢性能

引言 在工業物聯網快速發展的今天&#xff0c;各類智能傳感器設備已廣泛應用于智能制造、能源電力、智慧城市等關鍵領域。這些設備以極高的采樣頻率持續產生監測數據&#xff0c;使得單條產線每秒產生數十萬條傳感器數據已成為行業常態&#xff0c;這對數據存儲系統的寫入吞吐…

哈希擴展——一致性哈希

目錄 一、什么是一致性哈希 二、一致性哈希原理 2.1 hash 環 三、服務器擴容場景 3.1 服務器增加 3.2 服務器減少 3.3 使用虛擬節點 四、 一致性哈希的使用場景 一、什么是一致性哈希 一致性哈希是一種哈希算法&#xff0c;用于將數據分布到不同的節點或存儲區域&…

arcgis幾何與游標(1)

本節我們對幾何進行展開學習 ArcPy 的幾何對象 在 ArcPy 中&#xff0c;幾何對象是表示地理空間數據的核心。它包括點&#xff08;Point&#xff09;、多點&#xff08;Multipoint&#xff09;、線&#xff08;Polyline&#xff09;和面&#xff08;Polygon&#xff09;等類型…

分布式熱點網絡

核心設計理念&#xff1a; 在自然災害&#xff08;地震、洪水、臺風&#xff09;、極端環境&#xff08;無人區&#xff09;及網絡管制&#xff08;欠費停機&#xff09;等場景下&#xff0c;傳統中心化網絡易因核心節點失效導致全局癱瘓。本方案提出構建去中心化設備網絡&…

【5G學習】基本概念之多頻資源以及子載波和信道

在5G通信中&#xff0c;子載波、信道以及時域、頻域、碼域、空域是構建無線傳輸系統的核心概念。它們共同定義了信號的傳輸方式、資源分配和多維復用技術。以下是詳細解釋及其相互關系&#xff1a; 一、核心概念定義 1. 子載波&#xff08;Subcarrier&#xff09; 定義&#…

Coze 和 n8n 的詳細介紹及多維度對比分析,涵蓋功能、架構、適用場景、成本等關鍵指標

以下是 Coze 和 n8n 的詳細介紹及多維度對比分析&#xff0c;涵蓋功能、架構、適用場景、成本等關鍵指標&#xff1a; 一、Coze 詳細介紹 1. 基礎信息 類型&#xff1a;低代碼自動化平臺&#xff08;SaaS&#xff09;。開源性&#xff1a;閉源&#xff08;企業版需付費&…

分發餅干問題——用貪心算法解決

目錄 一&#xff1a;問題描述 二&#xff1a;解決思路 貪心策略&#xff08;C語言&#xff09;算法復習總結3——貪心算法-CSDN博客 三&#xff1a;代碼實現 四&#xff1a;復雜度分析 一&#xff1a;問題描述 分發餅干問題是一個經典的可以使用貪心算法解決的問題&#xf…

【Python爬蟲】簡單案例介紹4

本文繼續接著我的上一篇博客【Python爬蟲】簡單案例介紹3-CSDN博客 目錄 3.4 完整代碼 3.4 完整代碼 此小節給出上述案例的完整代碼&#xff0c; # encodingutf-8 import re, json, requests, xlwt, csv import pandas as pd from lxml import etree from bs4 import Beauti…

使用ADB工具分析Android應用崩潰原因:以閃動校園為例

使用adb工具分析模擬器或手機里app出錯原因以閃動校園為例 使用ADB工具分析Android應用崩潰原因&#xff1a;以閃動校園為例 前言 應用崩潰是移動開發中常見的問題&#xff0c;尤其在復雜的Android生態系統中&#xff0c;找出崩潰原因可能十分棘手。本文將以流行的校園應用&q…

【藍橋云課】男女搭配 python

題目 題目 題解 import mathT int(input()) for _ in range(T):N, M, K map(int, input().split())people_num N M# 目前為止可以組成的隊數group_num min(N // 2, M)if people_num - group_num * 3 < K:group_num-math.ceil((K-(people_num - group_num * 3))/3)pr…

edge 更新到135后,Clash 打開后,正常網頁也會自動跳轉

發現了一個有意思的問題&#xff1a;edge 更新135后&#xff0c;以前正常使用的clash出現了打開deepseek也會自動跳轉&#xff1a; Search Resultshttps://zurefy.com/zu1.php#gsc.tab0&gsc.qdeepseek &#xff0c;也就是不需要梯子的網站打不開了&#xff0c;需要的一直正…

MCP協議實戰指南:在VS Code中實現PostgreSQL到Excel的自動化遷移

作者&#xff1a;后端小肥腸 &#x1f34a; 有疑問可私信或評論區聯系我。 &#x1f951; 創作不易未經允許嚴禁轉載。 姊妹篇&#xff1a; 從PDF到精準答案&#xff1a;Coze助力RAGFlow框架提升數據召回率_提升ragflow-CSDN博客 CozeTreeMind實測&#xff1a;秒出ISO標準流程圖…

大模型微調(PEFT)

大模型微調&#xff08;PEFT&#xff09; PEFT&#xff08;Parameter-Efficient Fine-Tuning&#xff09;一、PEFT 核心方法1. LoRA&#xff08;Low-Rank Adaptation&#xff09;2. Adapter3. Prefix Tuning4. Prompt Tuning5. QLoRA&#xff08;Quantized LoRA&#xff09; 二…

flutter 打包mac程序 dmg教程

? 前提條件 ? 你已經在 macOS 上安裝了 Android Studio Flutter SDK。 ? Flutter 支持 macOS 構建。 運行下面命令確認是否支持&#xff1a; Plain Text bash 復制編輯 flutter doctor ---## &#x1f9f1; 第一步&#xff1a;啟用 macOS 支持如果是新項目&#xff0c;…

鴻蒙開發-動畫

1. 動畫-動畫特效 // 定義接口 (每個列表項的數據結構) interface ImageCount {url: stringcount: number }// 需求1: 遮罩層顯隱 透明度opacity 0-1 層級zIndex -1~99 // 需求2: 圖片縮放 縮放scale 0-1Entry Component struct Index {// 基于接口, 準備數據State images…

js:循環查詢數組對象中的某一項的值是否為空

循環檢查 selinfo 數組中的每一個對象&#xff0c;判斷其中的 po_qty 和 price 是否為空&#xff08;null、undefined 或空字符串 ""&#xff09;&#xff0c;可以使用以下幾種方法&#xff1a; 方法1&#xff1a;使用 forEach 循環檢查每一項 const selinfo this.…

x-cmd install | jellex - 用 Python 語法在終端里玩轉 JSON 數據!

目錄 核心功能與特點安裝優勢亮點適用場景 還在為命令行下處理 JSON 數據煩惱嗎&#xff1f;jellex 來了&#xff01;它是一款基于終端的交互式 JSON 和 JSON Lines 數據處理工具&#xff0c;讓你用熟悉的 Python 語法&#xff0c;輕松過濾、轉換和探索 JSON 數據。 核心功能與…

4月份到9月份看6本書第二天【ERP與企業管理】

ERP與企業管理 1-11章全面介紹了ERP的基本原理、物料管理功能、計劃功能、生產和采購管理功能、效益以及實施和應用ERP為企業帶來的深層次的變化。 第12章討論了軟件系統的選型。 第13章介紹了ERP實施和運行管理的方法 第14章介紹了國際上廣泛使用的ERP實施應用的評估方法。…

Opencv計算機視覺編程攻略-第十三節 跟蹤視頻中的物品

這是opencv系列的最后一節&#xff0c;主要學習視頻序列&#xff0c;上一節介紹了讀取、處理和存儲視頻的工具&#xff0c;本文將介紹幾種跟蹤圖像序列中運動物體的算法。可見運動或表觀運動&#xff0c;是物體以不同的速度在不同的方向上移動&#xff0c;或者是因為相機在移動…