1. 程式人生 > >SpringBoot啟動熱部署(親測)

SpringBoot啟動熱部署(親測)

1.在pom.xml中新增依賴

    <!-- 熱部署 -->
        <!-- 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>

2.修改application.properties檔案

#"關閉快取, 即時重新整理"
#spring.freemarker.cache=false
#spring.thymeleaf.cache=true  如果開啟此處會導致每次輸入刪除都會自動重新整理哪怕你沒儲存

#熱部署生效
spring.devtools.restart.enabled=true
#設定重啟的目錄,新增那個目錄的檔案需要restart
spring.devtools.restart.additional-paths=src/main/java

spring.devtools.restart.exclude=WEB-INF/**

3.idea的修改

3.1:File-Settings-Compiler-Build Project automatically

3.2:ctrl + shift + alt + /然後選擇Registry,勾上 Compiler.autoMake.allow.when.app.running

4.測試

修改後儲存

OK,SpringBoot的熱部署完成了