SpringBoot應用部署到外置Tomcat

概述

SpringBoot讓我們實現了簡單、方便、快速的創建一個Spring Web項目,其約定優於配置的模式讓我們少寫了大量的配置。內置tomcat更是讓開發用得爽歪歪,但如果我們需要將SpringBoot項目發佈到外置tomcat中,該如何操作呢?

一、修改Tomcat的打包方式

在pom.xml中將打包方式改成war

<packaging>war</packaging>

二、排除內置tomcat依賴

在pom.xml裏找到spring-boot-starter-web依賴節點,在其中添加如下代碼:

<!--排除內置tomcat依賴-->
<exclusions>
    <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
</exclusions>

三、添加servlet-api的依賴

有兩種servlet可以選擇:

1.java servlet-api

<!--servlet-api依賴-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>

2.tomcat-servlet

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-servlet-api</artifactId>
    <version>8.0.36</version>
    <scope>provided</scope>
</dependency>

選擇其中一種就可以了。

四、添加一個servlet的初始化類,並重寫初始化方法

/**
 * @Description: 發佈到tomcat需要添加一個servlet的初始化類
 * @Author oyc
 * @Date 2020/4/23 12:40 下午
 */
public class SpringBootJpaServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        //Application類,這裏一定要指向原先用main方法執行的Application啓動類
        return application.sources(SpringbootJpaApplication.class);
    }
}

五、其他設置於發佈到tomcat

5.1 修改打成war包名稱

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <!-- 打成war包的名稱(默認是項目名稱+版本.war) -->
        <warName>SpringBootJpa</warName>
    </configuration>
</plugin>

5.2 打包

在項目根目錄下(即包含pom.xml的目錄),在命令行裏輸入:

mvn clean package -Dmaven.test.skip=true

等待打包完成,把target目錄下生成的war包放到tomcat的webapps目錄下,啓動tomcat即自動完成解壓部署。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章