1 配置 Intellij IDEA
首先在 Intellij IDEA 中,開啓項目自動構建選項:
然後打開 Maintenance 選項卡,快捷鍵爲 Ctrl + Alt + Shift + /:
輸入快捷鍵後,選擇 Registry,進入註冊表,找到 compiler.automake.allow.when.app.running,勾選它:
這時 Java 代碼發生變化時,IDEA 就會自動重新編譯。
2 Spring Boot DevTools
Spring Boot 的 DevTools 爲我們提供了一些便利的開發期工具,包括以下這些內容:
- 當代碼變更後應用會自動重啓(這在 IDEA 中需要進行額外配置,上一小節有具體描述);
- LiveReload 服務器配合 LiveReload 瀏覽器插件,能夠在模板 、 圖片 、 樣式表 、 JavaScript等發生變化時,自動刷新瀏覽器,這樣就可以免去手動刷新的動作;
- 自動禁用模板框架(比如 Thymeleaf 或 FreeMarker)緩存;
- 如果使用 H2 數據庫,那麼可以通過 DevTools 內置的 H2 控制檯,看到相關數據。
安裝 DevTools 很簡單,我們只需要在 pom.xml 中,配置好 DevTools 的依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
DevTools 運行時會自動啓動一個 LiveReload 服務器:
3 安裝 LiveReload Chrome 插件
網上搜索 LiveReload ocx 類型的 Chrome 瀏覽器插件安裝包並下載下來,然後把文件類型從 ocx 改爲 zip(直接安裝會報程序包無效),拖入 Chrome 瀏覽器的擴展程序頁,進行安裝。
安裝時,記得先打開“開發者模式”。安裝成功後,就會在擴展程序中看到 LiveReload :
4 熱部署
使用 LiveReload Chrome 插件時,需要點擊右上角的 LiveReload 圖標,讓其打開 WebSocket 監聽 LiveReload 服務器。
在調試器中,我們可以看到 LiveReload Chrome 插件是通過 WebSocket 實現監聽 LiveReload 服務器的:
這時,如果靜態資源或者前端視圖(比如模板)發生變化,就會通過 LiveReload 實現自動刷新瀏覽器啦๑乛◡乛๑