在SpringBoot中啟用熱部署是非常簡(jiǎn)單的一件事,因?yàn)镾pringBoot為我們提供了一個(gè)非常方便的工具spring-boot-devtools,我們只需要把這個(gè)工具引入到工程里就OK了,下面我就說(shuō)一下怎么引入spring-boot-devtools好啰。
修改pom.xml
我們只需要在pom.xml里梆造,引入相應(yīng)的jar包就行了。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<!-- optional=true,依賴(lài)不會(huì)傳遞囚衔,該項(xiàng)目依賴(lài)devtools;之后依賴(lài)myboot項(xiàng)目的項(xiàng)目如果想要使用devtools雕沿,需要重新引入 -->
</dependency>
重新編譯類(lèi)文件
當(dāng)我們修改了一個(gè)java類(lèi)的時(shí)候练湿,我們只需要重新編譯一下,SpringBoot的就會(huì)重啟了审轮。因?yàn)閐evtools會(huì)監(jiān)聽(tīng)classpath下的文件變動(dòng)肥哎,所以當(dāng)java類(lèi)重新編譯的時(shí)候,devtools會(huì)監(jiān)聽(tīng)到這個(gè)變化疾渣,然后就會(huì)重新啟動(dòng)SpringBoot篡诽。這個(gè)重啟是非常快的一個(gè)過(guò)程榴捡。因?yàn)樵赟pringBoot中有兩個(gè)類(lèi)加載器杈女,一個(gè)是加載工程外部資源的,如jar包吊圾,還有一個(gè)類(lèi)加載器是用來(lái)加載本工程的class的达椰。所以在重啟SpringBoot的時(shí)候只加載本工程的class文件。
監(jiān)聽(tīng)文件夾的變化
如果你不想重新編譯java類(lèi)的話(huà)项乒,還有一種方式用來(lái)讓SpringBoot重啟啰劲,那就是讓devtools監(jiān)聽(tīng)文件夾的變化:比如我們想讓com.zkn.learnspringboot這個(gè)文件夾下的文件改變的時(shí)候,重新啟動(dòng)SpringBoot檀何,那么我們只要在application.properties中添加這樣一句話(huà)就行了:
spring.devtools.restart.additional-paths=com\\zkn\\learnspringboot
頁(yè)面熱部署
devtools可以實(shí)現(xiàn)頁(yè)面熱部署蝇裤,即頁(yè)面修改后會(huì)立即生效廷支。你可以在application.properties文件中配置
spring.thymeleaf.cache=false
來(lái)實(shí)現(xiàn)這個(gè)功能。