一、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). 啟用了自動構建:
File → Settings → Build, Execution, Deployment → Compiler
勾選:??
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) | ? 否 | 需要重啟才能生效 |
引入新依賴 | ? 否 | 需要 重新啟動項目 |