實現SpringBoot的熱部署方法(IDEA上操作)
熱部署原理:
配置檔案中用了spring-boot-devtools主要是因為這是一個為開發者服務的一個模組,其中最重要的功能就是自動應用程式碼更改到最新的App上面去。原理是在發現程式碼有更改之後,重新啟動應用,但是速度比手動停止後再啟動更快。其深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間。即devtools會監聽classpath下的檔案變動,並且會立即重啟應用(發生在儲存時機)
溫馨提示:使用了熱部署之後,千萬不要頻繁的進行ctrl+s(儲存)操作,因為這樣的話,就會自動進行部署重啟了,這樣會影響效能的哦~
步驟:
(1)pom.xml 新增依賴
<!--配置SpringBoot的熱部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork><!--注意要修改這裡--> </configuration> </plugin>
(2)在 application.properties 配置檔案中新增快取禁止配置
#禁用快取---要配置,否則無法生效
spring.thymeleaf.cache=false
spring.freemarker.cache=false
spring.groovy.template.cache=false
spring.velocity.cache=false
(3)修改 IDEA 的配置
1、按下Ctrl+Shift+A,在彈出的視窗中輸入:make project automatically,輸入完畢後回車會看到以下頁面,根據圖中指示勾上選項,完成後關閉視窗。
2、再按下Ctrl+Shift+A,在彈窗中輸入:Registry,輸入完畢後,滑鼠選中跟下圖所示一樣的選項後並進行回車操作。
3、然後在出現的頁面中,找到如下圖所示的選項,在旁邊的方框中進行勾選。該選項比較靠後,還是比較好找的。
(4)修改瀏覽器中的快取禁止(以谷歌瀏覽器做代表,其他瀏覽器類似)
1、按下Ctrl+Shift+J,開啟開發者功能(或者直接按下 F12 鍵也行),找到Network這一欄並點選。
2、再出現的頁面中,勾選禁止快取,如下圖所示