Sringboot整合外置Tomcat

為啥要整合外置Tomcat

在大部門公司里一般有專門的運(yùn)維團(tuán)隊(duì),他們負(fù)責(zé)對(duì)機(jī)器(現(xiàn)在大部分是docker)和代碼的編譯檢測(cè)以及代碼的發(fā)布。包括代碼運(yùn)行環(huán)境,如JDK的安裝,以及各種中間件在服務(wù)器上的安裝,因此Springboot這種直接集成了Tomcat的方式并不是特別的適用。

修改打包方式

修改項(xiàng)目的pom.xml配置,我們修改其打包方式為war方式,如:

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

添加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>

修改啟動(dòng)類,并重寫初始化方法

在SpringBoot中我們平常用main方法啟動(dòng)的方式,都有一個(gè)SpringBootApplication的啟動(dòng)類,類似代碼如下:

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

而我們現(xiàn)在需要類似于web.xml的配置方式來(lái)啟動(dòng)spring應(yīng)用,為此,我們?cè)贏pplication類的同級(jí)添加一個(gè)SpringBootStartApplication類,其代碼如下:

// 修改啟動(dòng)類,繼承 SpringBootServletInitializer 并重寫 configure 方法
public class SpringBootStartApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意這里一定要指向原先用main方法執(zhí)行的Application啟動(dòng)類
        return builder.sources(Application.class);
    }
}

更改build(在多module項(xiàng)目中,springboot默認(rèn)的build方式不會(huì)build所有的module,若不更改,會(huì)導(dǎo)致多個(gè)module相互引用找不到類)

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <skipTests>true</skipTests>    <!--默認(rèn)關(guān)掉單元測(cè)試 -->
                </configuration>
            </plugin>
        </plugins>
    </build>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容