Spring Boot移除內嵌Tomcat,使用非web方式啟動

南國以南i發表於2021-02-26

前言:當我們使用Spring Boot編寫了一個批處理應用程式,該程式只是用於後臺跑批資料,此時不需要內嵌的tomcat,簡化啟動方式使用非web方式啟動專案,步驟如下:

 

1、修改pom.xml檔案

在pom.xml檔案中去除內嵌tomcat,新增servlet依賴

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!--去除內嵌tomcat -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--新增servlet的依賴-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>compile</scope>
        </dependency>    

 

2、設定打包方式

在pom.xml檔案中將打專案包方式設定成jar,打成jar包通過命令去執行jar

<packaging>jar</packaging>

 

3、禁用web程式啟動方式

對於非Web應用程式,請在屬性檔案中禁用Web應用程式型別,application.yml檔案中新增:

spring:
    main:
      web-application-type: none

 

4、在啟動類中擴充套件

繼承SpringBootServletInitializer 類,以下本人寫了一個測試方法,專案啟動後生成一個txt檔案進行測試

@SpringBootApplication
public class TestiopojApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        System.out.println("專案開始啟動,開始執行任務============");
        SpringApplication.run(TestiopojApplication.class, args);
        String file = "E:\\copyFile";//檔案存放路徑
        String fileName = "test測試";//生成的檔名
        String strContext = "測試成功=======";//檔案內容
        try {
            FileUtils.writeStringToFile((new File(file + File.separator + fileName + ".txt")), strContext, "UTF-8");
            System.out.println("檔案建立成功============");
        } catch (IOException e) {
            System.out.println("檔案建立失敗============");
        }
    }

}

 

5、實列測試結果

由此我們可以通過java -jar 執行打包後的專案jar,控制檯顯示Spring Boot啟動標誌,專案正常啟動,檔案也正常建立成功,大功告成!

 

 

文章參考:點我點我點我

 

個人總結:

我是南國以南i記錄點滴每天成長一點點,學習是永無止境的!轉載請附原文連結!!!

 

相關文章