一文詳解springboot中的熱啟動(dòng)配置方案
Spring Boot 的熱啟動(dòng)(熱部署)主要通過(guò) **`spring-boot-devtools`** 模塊實(shí)現(xiàn),它能在代碼修改后自動(dòng)重啟應(yīng)用(無(wú)需手動(dòng)停止再啟動(dòng)),大幅提升開(kāi)發(fā)效率。以下是詳細(xì)配置和使用指南:
一、核心機(jī)制
spring-boot-devtools
通過(guò)兩階段實(shí)現(xiàn)熱更新:
1.自動(dòng)重啟(Restart):檢測(cè)到 classpath
下的文件變動(dòng)(如 Java 類(lèi)、配置文件)→ 觸發(fā)應(yīng)用重啟(速度比冷啟動(dòng)快)。
2.實(shí)時(shí)重載(LiveReload):配合瀏覽器插件,靜態(tài)資源(HTML/CSS/JS)修改后自動(dòng)刷新頁(yè)面。
二、快速配置(3步)
1. 添加依賴
<!-- Maven pom.xml --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> <!-- 避免依賴傳遞 --> </dependency> </dependencies>
// Gradle build.gradle dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' }
2. 開(kāi)啟 IDEA 自動(dòng)編譯
設(shè)置路徑:Settings > Build, Execution, Deployment > Compiler
勾選 Build project automatically
啟用運(yùn)行時(shí)編譯 (關(guān)鍵步驟!):Ctrl + Shift + A
搜索 Registry
→ 勾選:
compiler.automake.allow.when.app.running
3. 修改配置(可選)
# application.yml spring: devtools: restart: enabled: true # 默認(rèn)true,可關(guān)閉 trigger-file: .trigger # 用此文件觸發(fā)重啟(避免頻繁保存觸發(fā)) exclude: static/** # 排除無(wú)需監(jiān)控的目錄
三、使用技巧
靜態(tài)資源熱更新(無(wú)需重啟)
- 前端文件位置:
src/main/resources/static
或public
- 瀏覽器安裝插件:LiveReload
- 修改 CSS/JS/HTML 后 → 自動(dòng)刷新頁(yè)面
跳過(guò)指定文件重啟
// 在代碼中排除觸發(fā)重啟 @SpringBootApplication public class App { public static void main(String[] args) { System.setProperty("spring.devtools.restart.exclude", "templates/**"); SpringApplication.run(App.class, args); } }
手動(dòng)觸發(fā)重啟
在項(xiàng)目中創(chuàng)建 src/main/resources/.trigger
文件(文件名與配置一致),修改該文件觸發(fā)重啟。
四、常見(jiàn)問(wèn)題解決
修改 Java 代碼后未重啟
- 檢查是否關(guān)閉了 IDEA 的
Build project automatically
- 確認(rèn)
Registry
中的compiler.automake.allow.when.app.running
已啟用 - 嘗試手動(dòng) Build:
Build > Build Project
(Ctrl+F9)
靜態(tài)資源修改未刷新
- 檢查是否使用了
src/main/webapp
目錄(不推薦) → 改用static
或public
- 瀏覽器禁用緩存:開(kāi)發(fā)者工具 → Network → ? Disable cache
熱部署失效(多模塊項(xiàng)目)
在子模塊的 pom.xml
中添加:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludeDevtools>false</excludeDevtools> </configuration> </plugin> </plugins> </build>
五、高級(jí)方案:JRebel(付費(fèi))
若需 無(wú)重啟熱更新(直接替換內(nèi)存中的類(lèi)),推薦 JRebel:
- 安裝 IDEA 插件:
JRebel and XRebel
- 激活(可試用14天)
- 啟動(dòng)項(xiàng)目時(shí)選擇
Debug with JRebel
優(yōu)勢(shì):修改 Java 代碼后無(wú)需重啟應(yīng)用,實(shí)時(shí)生效(對(duì)大型項(xiàng)目提速顯著)。
六、熱啟動(dòng)原理圖
mermaid代碼導(dǎo)出svg
生產(chǎn)環(huán)境警告:務(wù)必移除 spring-boot-devtools
依賴(通過(guò) <scope>provided</scope>
或 developmentOnly
),避免安全風(fēng)險(xiǎn)!
到此這篇關(guān)于一文詳解springboot中的熱啟動(dòng)配置方案的文章就介紹到這了,更多相關(guān)springboot熱啟動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA配置并運(yùn)行Scala項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了IDEA配置并運(yùn)行Scala項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-06-06

關(guān)于BindingResult的使用總結(jié)及注意事項(xiàng)

Java?Swing實(shí)現(xiàn)QQ登錄頁(yè)面

spring aop實(shí)現(xiàn)接口超時(shí)處理組件的代碼詳解