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