SpringBoot應用部署於外置Tomcat容器

Desktop


0x01. 概述

SpringBoot平時咱們用的爽歪歪,爽到它本身連Tomcat都自集成了,咱們能夠直接編寫SBT啓動類,而後一鍵開啓內置的Tomcat容器服務,確實是很好上手。但考慮到實際的情形中,咱們的Tomcat服務器通常是另外部署好了的,有專門的維護方式。此時咱們須要剝離掉SBT應用內置的Tomcat服務器,進而將應用發佈並部署到外置的Tomcat容器之中,本文就實踐一下這個。java

注: 本文首發於 My 公衆號 CodeSheep ,可 長按掃描 下面的 當心心 來訂閱 ↓ ↓ ↓

CodeSheep · 程序羊


0x02. 修改打包方式

修改項目的pom.xml配置,咱們修改其打包方式爲war方式,如:web

<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

0x03. 移除SBT自帶的嵌入式Tomcat

修改pom.xml,從maven的pom中移除springboot自帶的的嵌入式tomcat插件spring

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移除嵌入式tomcat插件 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

0x04. 添加servlet-api依賴

修改pom.xml,在maven的pom中添加servlet-api的依賴編程

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

0x05. 修改啓動類,並重寫初始化方法

在SpringBoot中咱們日常用main方法啓動的方式,都有一個SpringBootApplication的啓動類,相似代碼以下:c#

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

而咱們如今須要相似於web.xml的配置方式來啓動spring應用,爲此,咱們在Application類的同級添加一個SpringBootStartApplication類,其代碼以下:api

// 修改啓動類,繼承 SpringBootServletInitializer 並重寫 configure 方法
public class SpringBootStartApplication extends SpringBootServletInitializer {

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

0x06. 部署到外部的Tomcat容器並驗證

  • 在項目根目錄下(即包含pom.xml的目錄)記性maven打包操做:
mvn clean package

等待打包完成,出現 [INFO] BUILD SUCCESS 即爲打包成功瀏覽器

  • 而後咱們把target目錄下生成的war包放到tomcat的webapps目錄下,啓動tomcat,便可自動解壓部署。

最後在瀏覽器中驗證:tomcat

http://YOUR_IP:[端口號]/[打包項目名]

瀏覽器驗證

  • 也能夠直接將項目命名爲ROOT,這樣訪問根目錄便可訪問tomcat中的SpringBoot應用
http://YOUR_IP:[端口號]

直接將項目命令爲ROOT

瀏覽器驗證


後記

做者更多的SpringBt實踐文章在此:springboot


若是有興趣,也能夠抽點時間看看做者一些關於容器化、微服務化方面的文章:服務器


CodeSheep · 程序羊

相關文章
相關標籤/搜索