Spring Boot熱部署之springloader


熱部署是什么呢?

熱部署,就是在應用正在運行的時候升級軟件,卻不需要重新啟動應用。

在平時編寫代碼的時候,你會發現我們只是簡單把打印信息改變了,就需要重新部署,如果是這樣的編碼方式,那么我們估計一天下來就真的是打幾個Hello World就下班了。那么就需要而部署來解決我們這種問題,那就是springloaded

使用方式,在上一個項目中的pom.xml中添加依賴:

<!-- 構建節點 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin </artifactId> <dependencies> <!--在這里添加 springloader plugin --> <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>

第一種方式

然后選中項目去maven build 
這里寫圖片描述

填寫spring-boot:run

這里寫圖片描述

讓它跑起來,如果是第一次運行可能回下載很多jar包 耐心等待。 
這里寫圖片描述

運行如下圖:

這里寫圖片描述
我們不重啟服務器在controller里面修改返回值然后執行也可以得到,這就是所謂的熱部署。 
這里寫圖片描述

ps:然而這種部署有一種壞處就是,當我們關閉服務器,在重啟時就會出現端口占用,那是因為進程並沒有kill,所以我們要到任務管理器去找到java.exe把它結束進程,才可以使用。一般不推薦使用。

第二種方式

如果使用的run as – java application的話,那么還需要做一些處理哦:

把spring-loader-1.2.4.RELEASE.jar下載下來,放到項目的lib目錄中, 
這里寫圖片描述 
然后把IDEA的run參數里VM參數設置為:

-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify

這里寫圖片描述
效果如上,當比上面好的多。

然后啟動就可以了,這樣在run as的時候,也能進行熱部署了。 
當然並不是所有的代碼都支持熱部署了。而且我們今天只能修改返回值,如果修改方法或是類和配置文件呢? 下次更新!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM