1. 程式人生 > 其它 >idea springboot 沒有out目錄_Spring Boot入門系列(十五) SpringBoot開發環境熱部署的配置...

idea springboot 沒有out目錄_Spring Boot入門系列(十五) SpringBoot開發環境熱部署的配置...

技術標籤:idea springboot 沒有out目錄

3e92a5f6d5f1736a145db5a456ce4f0b.gif

在實際的專案開發過中,當我們修改了某個java類檔案時,需要手動重新編譯、然後重新啟動程式的,整個過程比較麻煩,特別是專案啟動慢的時候,更是影響開發效率。其實Spring Boot的專案碰到這種情況,同樣也同樣需要經歷重新編譯、重新啟動程式的過程。只不過Spring Boot 提供了一個spring-boot-devtools的模組,使得 Spring Boot應用支援熱部署,無需手動重啟Spring Boot應用,,提高開發者的開發效率。接下來,聊一聊Spring Boot 開發環境熱部署。

一、原理

devtools 使用了兩個類載入器(ClassLoader)。

一個是 Base類載入器(base classloader ):載入那些不會改變的類,如:第三方Jar包等。

另一個是 Restart類載入器(restart classloader):負責載入那些正在開發的會改變的類。這樣在有程式碼更改的時候,因為重啟的時候只是載入了在開發的Class類,沒有重新載入第三方的jar包,所以實現了較快的重啟時間。

devtools 監聽classpath下的檔案變動(發生在儲存時機),並且會立即重啟應用。從而實現類檔案和屬性檔案的熱部署。

二、快速配置

1、pom配置

引入devtools的依賴

<dependency>    <groupId>org.springframework.bootgroupId>    <artifactId>spring-boot-devtoolsartifactId>        <optional>trueoptional>dependency>

注意:optional=true, 依賴不會傳遞, 該專案依賴devtools;之後依賴boot專案的專案如果想要使用devtools, 需要重新引入。

2、application.properties配置

在application.properties中配置devtools。

# 關閉快取即時重新整理#spring.thymeleaf.cache=false#熱部署生效spring.devtools.restart.enabled=true#設定重啟的目錄spring.devtools.restart.additional-paths=src/main/java#classpath目錄下的WEB-INF資料夾內容修改不重啟spring.devtools.restart.exclude=WEB-INF/**

說明:

devtools可以實現頁面熱部署,即頁面修改後會立即生效,需要將application.properties檔案中配置spring.thymeleaf.cache=false。

devtools會監聽classpath下的檔案變動,並且會立即重啟應用。

3、IDEA配置

如果idea是新安裝的或者之前就沒有配置過,發現改變程式碼專案熱部署不成功。當我們修改了Java類後,IDEA預設是不自動編譯的,而spring-boot-devtools又是監測classpath下的檔案發生變化才會重啟應用。

所以需要設定IDEA的自動編譯:

(1)File-Settings-Compiler-Build Project automatically

(2)ctrl + shift + alt + /,選擇Registry,勾上 Compiler autoMake allow when app running

這樣,就可以使用devtools實現熱部署了。

最後

以上,就把如何配置Spring Boot 開發環境熱部署介紹完了。還是比較簡單的,大家自己去研究吧。

推薦閱讀:

  • Spring Boot入門系列(十一)如何整合Mybatis,實現增刪改查【XML 配置版】

  • SpringBoot入門系列(十一)統一日誌收集!

  • Spring Boot入門系列(八)整合定時任務Task,一秒搞定定時任務

  • SpringBoot入門系列(二)Controller介紹及如何返回json數

  • SpringBoot入門系列(一)如何快速建立SpringBoot項

68f06930142353418de03365a70c4f9b.png

6e3b95828e760836c9d9fc8fa5185036.png