spring boot (三): 熱部署
阿新 • • 發佈:2017-07-06
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 (三): 熱部署