Spring Boot 學習系列(03)—jar or war,作出你的選擇

此文已由做者易國強受權網易雲社區發佈。
html

歡迎訪問網易雲社區,瞭解更多網易技術產品運營經驗。java


兩種打包方式

  • 採用Spring Boot框架來構建項目,咱們對項目的打包有兩種方式可供選擇,一種仍保持原有的方式不變,package一個war包放置到外置的應用容器中;另外一種則是直接打包成一個jar包,這個jar包裏面包含了內置的應用容器,能夠經過Java命令直接啓動運行。
    web

jar包方式

  • 對於jar包的方式,前面文章的示例中其實咱們就是採用的此種方式,使用方式再也不贅述。
    spring

war包方式

  • 若是採用war包的方式,其實也很簡單,咱們僅僅須要變動下配置便可,具體操做以下所示:tomcat

    1. 將pom.xml文件中打包方式變動成war安全

       <groupId>com.example.future</groupId>
       <artifactId>bingo</artifactId>
       <version>0.0.1-SNAPSHOT</version>
       <packaging>war</packaging>
    2. 變動內置容器(默認tomcat)的做用範圍爲provided,這樣在打包時就不會將內嵌的容器打入war包中。在依賴中加入以下內容:app

       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
           <scope>provided</scope>
       </dependency>
    3. 自定義一個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);
               }
           }
    4. 經過以上步驟便可完成war包方式的改寫。咱們再執行package命令時,在target目錄下生成的即爲項目war包了。運維




打包方式的選擇


  • 具體的打包方式能夠根據咱們項目的實際需求以及運維現狀來決定。顯而易見的,若是採用jar包的方式進行部署,那麼對於容器(如tomcat)的管理,開發人員能夠介入其中自行維護,部署也相對簡單些。固然,若須要運維在外部配置指定也是能夠的,在使用java命令啓動打好的jar包時指定運行參數便可。分佈式


  • 不足之處,歡迎指正,謝謝~


免費體驗雲安全(易盾)內容安全、驗證碼等服務

更多網易技術、產品、運營經驗分享請點擊


相關文章:
【推薦】 分佈式存儲系統可靠性系列一:如何估算
【推薦】 深刻淺出「跨視圖粒度計算」--三、EXCLUDE表達式

相關文章
相關標籤/搜索