Spring Boot的devtools的熱部署
阿新 • • 發佈:2018-11-11
一 點睛
1 熱部署
devtools可以實現頁面熱部署,即頁面修改後會立即生效。
這個可以直接在application.properties檔案中配置spring.thymeleaf.cache=false來實現。
實現類檔案熱部署:類檔案修改後不會立即生效,實現對屬性檔案的熱部署。
devtools會監聽classpath下的檔案變動,並且會在儲存檔案時,立即重啟應用。
因為其採用的虛擬機器機制,該項重啟是很快的。
(1)base classloader (Base類載入器):載入不改變的Class,例如:第三方提供的jar包。
(2)restart classloader(Restart類載入器):載入正在開發的Class。
為什麼重啟很快,因為重啟的時候只是載入了在開發的Class,沒有重新載入第三方的jar包。
二 引入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true, 依賴不會傳遞, 該專案依賴devtools; 之後依賴boot專案的專案如果想要使用devtools, 需要重新引入 --> <optional>true</optional> </dependency>
三 配置
#關閉快取,即時重新整理 #spring.freemarker.cache=false #spring.thymeleaf.cache=true #熱部署生效 spring.devtools.restart.enabled=true #設定重啟的目錄,新增哪個目錄的檔案需要restart spring.devtools.restart.additional-paths=src/main/java # 為mybatis設定,生產環境可刪除 restart.include.mapper=/mapper-[\\w-\\.]+jar restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar #排除哪個目錄的檔案不需要restart #spring.devtools.restart.exclude=static/**,public/** #classpath目錄下的WEB-INF檔案內容修改不重啟 #spring.devtools.restart.exclude=WEB-INF/**
四 測試
修改其中一個Java檔案,然後儲存,發現專案立即重啟。