天天看點

SpringBoot打war包部署Tomacat

一、前言

大家都知道,springboot有2種部署方式,一種是打jar包部署,一種是打war包部署,jar包部署通常比較簡單,war包部署麻煩一些,這裡我就分享一下我部署war包的經驗。

二、如何打war包

2.1第一步:修改pom檔案的jar為war

打開我們的pom.xml檔案,修改如下代碼

<groupId>com.bai</groupId>
	<artifactId>test</artifactId>
	<version>0.0.1-dev</version>
	<!--這裡修改-->
	<packaging>war</packaging>

           

2.2第二步:需要将嵌入式容器依賴項改為“provided”

如果你的項目中有依賴spring-boot-starter-tomcat包,需要将它标記為provided,如果你沒有使用它,則不需要操作這一步

這裡我們可以從官網的文檔中看到。

SpringBoot打war包部署Tomacat

代碼如下:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
           

2.3第三步:繼承SpringBootServletInitializer

這一步就是将我們的application繼承SpringBootServletInitializer,

方法一:啟動類繼承SpringBootServletInitializer實作configure(官網文檔中的方式)

SpringBoot打war包部署Tomacat

代碼如下:

//指定dao包的位置
@MapperScan(basePackages = "com.bai.dao")
//表示目前項目為springboot應用
@SpringBootApplication
public class Application extends SpringBootServletInitializer {

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

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
}

           

本人親試,打完包以後可以成功。

或者是,如果你不想這樣,還有另外一種辦法

方法二:建立一個類繼承SpringBootServletInitializer實作configure

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        //此處的Application.class為帶有@SpringBootApplication注解的啟動類
        return builder.sources(Application.class);
    }
}

           

三、如何部署war包

完成以上步驟,我們就可以打包了,使用maven clean一下,然後再package或者install都可以,打包成功後,将war包放進tomacat的webapp目錄下,然後啟動tomacat。

注意:啟動後的通路位址,将不再是你在springboot裡面配置的ip和端口号,而是你的tomacat的ip和端口号,除此之外還要帶上war包名

例如:我的war包叫test.war,我的tomacat預設的ip是127.0.0.1,端口号預設為8080,我的通路位址就是:http://127.0.0.1:8080/test/XXX.jsp

springboot版本更新的比較快,可能不同版本的差別不同。建議以官方文檔為準。

這裡分享一下官網位址:springboot官網連結:https://spring.io/projects/spring-boot#learn

本篇文章在他人基礎上完成。

原文連結:https://blog.csdn.net/u012489412/article/details/84023569

原文連結:https://blog.csdn.net/qq_33512843/article/details/80951741