SpringBoot打War包部署Tomacat

  • 一、前言
  • 二、如何打war包
  • 2.1第一步:修改pom文件的jar为war
  • 2.2第二步:需要将嵌入式容器依赖项改为“provided”
  • 2.3第三步:继承SpringBootServletInitializer
  • 三、如何部署war包


一、前言

大家都知道,springboot有2种部署方式,一种是打jar包部署,一种是打war包部署,jar包部署通常比较简单,war包部署麻烦一些,这里我就分享一下我部署war包的经验。

二、如何打war包

对于如何打war包,很多小伙伴,都知道,直接pom文件里,把那个jar换成war即可,是的,确实如此,但是还需要一点其它操作。

2.1第一步:修改pom文件的jar为war

打开我们的pom.xml文件,修改如下代码

<groupId>com.fm</groupId>
	<artifactId>test</artifactId>
	<version>0.0.1-dev</version>
	<!--这里修改-->
	<packaging>war</packaging>

2.2第二步:需要将嵌入式容器依赖项改为“provided”

如果你的项目中有依赖spring-boot-starter-tomcat包,需要将它标记为provided,如果你没有使用它,则不需要操作这一步

这里我们可以从官网的文档中看到。

springboot war包 怎么打 springboot打war包部署_springboot部署war包

这样就好了吗?不,这样还不够。还有一步操作

2.3第三步:继承SpringBootServletInitializer

这一步就是将我们的application继承SpringBootServletInitializer,

方法一:按照官网文档中的方式操作

springboot war包 怎么打 springboot打war包部署_springboot部署tomacat_02

本人亲试,打完包以后可以成功。

或者是,如果你不想这样,还有另外一种办法
方法二:新建一个类继承SpringBootServletInitializer

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { //此处的Application.class为带有@SpringBootApplication注解的启动类
        return builder.sources(CcbhouseApplication.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

好了到这里就结束了,当初做这个时,发现找了很多资料,描述的都不是很清楚,这里记录一下,也分享给大家,希望帮助大家节省时间,减少烦恼。我个人建议,还是先去官网上查看一下官方文档,springboot版本更新的比较快,可能不同版本的区别不同。建议以官方文档为准。