一,前言
在講解熱部署之前,先來說說爲什麼會出現這個名詞
通常我們在進行軟件開發的時候,每次對程序的改動就需要重新啓動該程序,這樣會影響到整個的開發進度。
所以爲了解決這一難題,就出現了所謂的熱部署:可以讓我們的修改及時生效,從而不需要每次都手動重啓程序
二,devtools原理
使用devtools實現熱部署,主要是因爲其使用了兩個類加載,那麼爲什麼要使用兩個類加載呢?
問題很簡單,其實這裏就是爲了提高部署效率:
1,選擇我們想要進行加載的類,進行加載
通過spring.devtools.restart.additional-paths:src/main/java
意思是,在進行重新加載的時候,只重新加載該目錄下的類進行編譯
2,選擇我們需要進行加載的類,不進行加載
通過spring.devtools.restart.exclude:WEB-INF/**
還有一點,因爲該熱部署的重啓是指虛擬機的重啓,其速度也會相比平常的重啓快速
三,devtools的配置
該配置主要分爲兩大步:
- pom和application文件配置
在pom文件中配置對應的依賴文件
<dependency>
<groupId>org.spingframework.boot</groupId>
<aritfactId>spring-boot-devtools</artifactId>
<!--此處使用該optional的作用是,防止依賴傳遞,若某個項目xx引入了依賴A,A添加了optional=true,那麼當其他項目通過POM文件,依賴xx項目的時候,該依賴A不會被傳遞-->
<optional>true</optional>
</dependency>
在配置文件application.properties中配置:
#清除緩存,及時刷新
sping.thymeleaf.cache:true
#開啓熱部署生效,允許其重啓
spring.devtools.restart.enabled:true
#設置需要熱部署的路徑
spring.devtools.restart.additional-paths:src/main/java
#設置不需要熱部署的路徑
spring.devtools.restart.exclude:WEB-INF/**
別以爲配置到了這裏結束了,別急,還有下面一個步驟,即可完成
- IDEA配置
通常我們即使引入了devtools這個依賴,我們也不能實現熱部署,是因爲IDEA默認是不進行自動編譯的,而spring-tools-devtools是通過監聽classpath下的文件內容發生變化的時候纔會重啓應用,所以我們接下來要做的事情就是設置IDEA的自動編譯
File->Settings->Complier->Build Project automatically
即可。
除了這個還有一個快捷鍵方式Ctrl+Alt+Shift+/—>Registry,選擇Complier autoMake allow when app running即可
到這裏,我們的dectools熱部署就正式完成了,接下來我們只需要在IDEA中進行開發,點擊保存,就會觸發該熱部署進行加載文件