Spring Boot 學習系列(03)—jar or war,做出你的選擇
阿新 • • 發佈:2018-11-01
此文已由作者易國強授權網易雲社群釋出。
歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。
兩種打包方式
採用Spring Boot框架來構建專案,我們對專案的打包有兩種方式可供選擇,一種仍保持原有的方式不變,package一個war包放置到外接的應用容器中;另一種則是直接打包成一個jar包,這個jar包裡面包含了內建的應用容器,可以通過Java命令直接啟動執行。
jar包方式
對於jar包的方式,前面文章的示例中其實我們就是採用的此種方式,使用方式不再贅述。
war包方式
如果採用war包的方式,其實也很簡單,我們僅僅需要變更下配置即可,具體操作如下所示:
將pom.xml檔案中打包方式變更成war
<groupId>com.example.future</groupId> <artifactId>bingo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
變更內建容器(預設tomcat)的作用範圍為provided,這樣在打包時就不會將內嵌的容器打入war包中。在依賴中加入如下內容:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
自定義一個servlet初始化類,繼承SpringBootServletInitializer類,如下所示:
package com.example.future; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; /** * @author future */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(BingoApplication.class); } }
通過以上步驟即可完成war包方式的改寫。我們再執行package命令時,在target目錄下生成的即為專案war包了。
打包方式的選擇
具體的打包方式可以根據我們專案的實際需求以及運維現狀來決定。顯而易見的,如果採用jar包的方式進行部署,那麼對於容器(如tomcat)的管理,開發人員可以介入其中自行維護,部署也相對簡單些。當然,若需要運維在外部配置指定也是可以的,在使用java命令啟動打好的jar包時指定執行引數即可。
不足之處,歡迎指正,謝謝~
更多網易技術、產品、運營經驗分享請點選。
相關文章:
【推薦】 程式碼線上編譯器(上)- 編輯及編譯
【推薦】 BRVAH(讓RecyclerView變得更高效) (3)