Spring Boot應用的打包和部署


  

  傳統的Web應用在發布之前通常會打成WAR包,然后將WAR包部署到Tomcat等容器中使用,而通過前面的學習我們已經知道,Spring Boot應用既能以JAR包的形式部署,又能以WAR包的形式部署。

JAR包

  打包方式是JAR,在idea中只需要執行Maven的package命令就可以將項目打成一個JAR包
  JAR包復制到系統D盤,並使用壓縮軟件打開。我們可以在其lib文件夾中發現很多JAR包,實際上這些JAR包就是項目所依賴的JAR包,其中還包括了Tomcat的JAR包
  由於在項目JAR包中已經包含了Tomcat,所以我們不需要另外部署Tomcat就可以在命令行中將項目啟動起來。
  在命令提示符窗口中進入JAR包所在目錄(D盤),並通過如下命令來執行JAR包:

java -jar springboot-0.0.1-SNAPSHOT.jar

 

WAR包

  雖然通過Spring Boot內嵌的Tomcat可以直接運行所打的JAR包,但是有時候我們也會希望通過外部的Tomcat來管理多個項目。由於JAR包在Tomcat中是無法運行的,所以我們需要將項目打成WAR包的形式。
  要想將項目打成WAR包,並可以在Tomcat中運行,需要執行以下兩個步驟。

1. 修改打包方式,並添加Tomcat依賴

將項目pom.xml中<packaging>元素內的jar修改為war,並在文件中添加Tomcat的依賴配置。其修改和添加的配置信息如下:

<packaging>war</packaging>
...
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

 

  上述配置代碼中,spring-boot-starter-tomcat是Spring Boot自帶的Tomcat依賴,默認會被打到項目的lib包中。當我們將其依賴范圍設置為provided時,將產生一個可執行的WAR包,在包中的lib-provided目錄會有provided依賴。這樣不僅可以部署到Servlet容器啟動項目,還可以通過命令行執行java-jar命令來運行此應用。

2. 創建SpringBootServletInitializer子類,並覆蓋其配置方法

  要產生一個可部署的war包,還需要提供一個SpringBootServletInitializer子類,並覆蓋它的configure()方法。通常我們可以采用兩種方式:一是把應用的主類(引導類)修改為繼承SpringBootServletInitializer的類,並覆蓋configure()方法;二是創建一個繼承了SpringBootServletInitializer的類,並覆蓋configure()方法。以創建SpringBootServletInitializer子類的方式為例,其子類實現代碼如文件3-11所示。
  文件3-11 ServletInitializer.java

package com.xc.springboot;

import javafx.application.Application;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}

  完成這兩步后,即可通過package命令將項目打成WAR包,然后將WAR包部署到Tomcat中啟動。


免責聲明!

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



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