1. 程式人生 > >spring boot (三): 熱部署

spring boot (三): 熱部署

pom.xml文件 添加 gin 字節 loader 信息 dev spring tool

介紹了Spring boot實現熱部署的兩種方式,這兩種方法分別是使用 Spring Loaded和使用spring-boot-devtools進行熱部署。

熱部署是什麽

大家都知道在項目開發過程中,常常會改動頁面數據或者修改數據結構,為了顯示改動效果,往往需要重啟應用查看改變效果,其實就是重新編譯生成了新的 Class 文件,這個文件裏記錄著和代碼等對應的各種信息,然後 Class 文件將被虛擬機的 ClassLoader 加載。

而熱部署正是利用了這個特點,它監聽到如果有 Class 文件改動了,就會創建一個新的 ClaassLoader 進行加載該文件,經過一系列的過程,最終將結果呈現在我們眼前。

類加載機制

Java 中的類經過編譯器可以把代碼編譯為存儲字節碼的 Class 文件,該 Class 文件存儲了各種信息,最終要加載到虛擬機中運行使用。

類加載機制(摘自《深入理解 Java 虛擬機》)

虛擬機把描述類的數據從 Class 文件加載到內存中,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的 Java 類型。

方法一 使用springloaded

在pom.xml文件中添加依賴包

    <!-- 構建節點 -->
    <build>
        <plugins>
            <
plugin> <groupId>org.springframework</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> </plugins> </build>

這次啟動不能直接運行 main 方法了,需要使用如下命令啟動:

mvn spring-boot:run

方法二 spring-boot-devtools

在pom文件中增加依賴包

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

這次啟動不能直接運行 main 方法了,需要使用如下命令啟動:

mvn spring-boot:run

spring boot (三): 熱部署