1. 程式人生 > >Spring Boot 熱部署

Spring Boot 熱部署

建議 pom 新頁面 模板引擎 dep div 結果 運行 version

Spring Boot 熱部署

實際開發中,修改某個頁面數據或邏輯功能都需要重啟應用。這無形中降低了開發效率,所以使用熱部署是十分必要的。

什麽是熱部署?

應用啟動後會把編譯好的Class文件加載的虛擬機中,正常情況下在項目修改了源文件是需要全部重新編譯並重新加載(需要重啟應用)。而熱部署就是監聽Class文件的變動,只把發生修改的Class重新加載,而不需要重啟應用,使得開發變得簡便。

Spring Boot 配置實現熱部署

第一種方式:maven 插件-springloaded

在spring-boot-maven-plugin插件配置中添加springloaded依賴。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.5.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

通過命令:mvn spring-boot:run 啟動應用,修改controller中代碼 或 修改html頁面 後(記得在idea上面按ctrl+shirt+F9重新加載修改過的class文件)再刷新頁面,會發現顯示結果跟著變化。

註意:第一種方式 對 mvn spring-boot:run 這種方式啟動應用有效,而對直接運行Application.java啟動應用無效。

註意1:如果發現沒有熱部署效果,則需要檢查idea配置中有沒有打開自動編譯:

打開 Preferences > Compiler , 勾選 Build project automatically

技術分享圖片

註意2:如果使用Thymeleaf模板引擎,需要把模板默認緩存設置為false

在application.properties中添加:

#禁止thymeleaf緩存(建議:開發環境設置為false,生成環境設置為true)
spring.thymeleaf.cache=false

第二種方式:依賴 spring-boot-devtools 熱部署模塊

pom.xml 添加依賴:

<!-- 熱部署模塊 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 這個需要為 true 熱部署才有效 -->
</dependency>

重啟應用,修改controller中代碼 或 修改html頁面 後再刷新頁面,會發現顯示結果跟著變化。

Spring Boot 熱部署