SpringBoot系列六:SpringBoot整合Tomcat


聲明:本文來源於MLDN培訓視頻的課堂筆記,寫在這里只是為了方便查閱。

1、概念:SpringBoot 整合 Tomcat

2、背景

  SpringBoot 本身支持有兩類的 WEB 容器:默認的 Tomcat、Jetty,那么現在如果從實際的角度來看,在 SpringBoot 運行的時候 即使沒有 WEB 容器,那么也可以采用自定義的方式實現 WEB 容器的啟動。如果說現在只是做為一個簡單的服務發布,那么的確 用不上 Tomcat,可是 Tomcat 也有自身的優勢,畢竟它是一個具備有完全功能的 WEB 容器,而且在這個容器里面還可以進行各種 服務的配置,所以一些開發者認為,不應該只是純粹的去使用微服務的方式來啟動 WEB 程序,我們的程序還應該發布到 Tomcat 之中。

2.1、配置 Tomcat 運行

1、 如果一個程序項目要想發布到 Tomcat 上運行,那么該項目一定要設置為 war 文件,於是首先第一步就需要修改項目的類型為 war,修改 pom.xml 配置文件:

· 首先將打包的類型設置為 war 文件:

<packaging>war</packaging>

· 項目最終需要進行打包操作,所以還需要設置一個 maven 的 war 文件的打包插件:

         <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warName>study</warName>
                </configuration>
            </plugin>
        </plugins>

· 由於現在的項目打包為 war 文件之后需要通過 tomcat 執行,所以注銷掉 jetty 的相關配置。

<!--         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency> -->

2、 由於現在項目模塊追加了新的 maven 插件,所以為了讓插件起作用,則應該進行 maven 的更新處理;

3、 更新完成 maven 項目之后會提示用戶你現在缺少 webapps/WEB-INF/web.xml 配置文件,所以可以通過 Tomcat 安裝目錄拷貝此 文件到項目之中;

4、 如果現在你的項目要想以 Tomcat 的形式運行,那么必須對 SpringBoot 的啟動類做有一個簡單的配置處理;

package cn.study.microboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication // 啟動SpringBoot程序,而后自帶子包掃描
@ComponentScan("cn.study.microboot")
public class StartSpringBootMain extends SpringBootServletInitializer { // 必須繼承指定的父類
    @Override
    protected SpringApplicationBuilder configure(
            SpringApplicationBuilder builder) {
        return builder.sources(StartSpringBootMain.class) ;
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(StartSpringBootMain.class, args);
    }
}

5、 進行項目的maven打包處理:

6、 將生成的 study.war 文件拷貝到 tomcat/webapps 目錄之中進行項目的熱部署,隨后啟動 Tomcat 容器,來執行當前的程序文件, 訪問路徑:http://localhost/study/addPre;


免責聲明!

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



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