SrpringBoot项目部署Tomcat踩过的坑

Tomcat部署SrpringBoot项目注意事项

POM文件

打包时需排除个别tomcat的lib中已经存在的jar包,修改pom.xml以下内容

<!--项目打war包 默认不写会打jar包-->
<packaging>war</packaging>

<!--打包时跳过 test文件夹-->
<properties>
    <skipTests>true</skipTests>
</properties>

<!--打包排除 tomcat依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!--添加servlet-api依赖-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <!--打包时该依赖不会被打包进去-->
    <scope>provided</scope>
</dependency>
<!--添加tomcat依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <!--打包时该依赖不会被打包进去-->
    <scope>provided</scope>
</dependency>

启动类Application

由于SpringBoot项目是没有web.xml文件的,如果你打成war丢到tomcat上启动你会发现没有如何反应,因为tomcat并没有找到web.xml来初始化容器,SpringBootServletInitializer类就一个web.xml的替代品,用法也很简单,只需要在你的启动类中继承他,并且重写configure方法即可
注意: 使用war启动项目就必须继承SpringBootServletInitializer重写configure方法否则项目部署不了

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);
    }
}

打包

idea 打包很方便,点击右侧的maven,双击package,maven就会帮你把包打到target目录下面,默认是打jar包,只有pom配置 packaging 方式是war包才会 大war包
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JolyouLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值