閱讀179 返回首頁    go 技術社區[雲棲]


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頁麵 後再刷新頁麵,會發現顯示結果跟著變化。

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

注意1:如果發現沒有熱部署效果,則需要檢查idea配置中有沒有打開自動編譯:官網:www.fhadmin.org

打開 Preferences > Compiler , 勾選 Build project automatically

注意2:如果使用Thymeleaf模板引擎,需要把模板默認緩存設置為false 官網:www.fhadmin.org

在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頁麵 後再刷新頁麵,會發現顯示結果跟著變化。

最後更新:2017-07-23 20:40:58

  上一篇:go  企業框架源碼 SpringMVC mybatis 多數據源 代碼生成器 SSM java redis shiro ehcache
  下一篇:go  集群和分布式初探