Spring Boot 整合 Tomcat

本文介绍了如何将Spring Boot应用打包成WAR文件,以便在独立的Tomcat服务器上部署。Spring Boot默认集成Tomcat并打包为可执行JAR,但通过自定义配置,可以禁用内置服务器并支持WAR部署。你需要创建一个配置类,覆盖默认行为,并在pom.xml中调整依赖。完成这些步骤后,你可以使用Maven再次打包,并在外部Tomcat容器中运行应用。

Spring Boot 整合 Tomcat

spring boot 为了简化开发,在打包的时候默认打包成jar文件,可以直接执行,tomcat是集成在jar文件中的。如果想打包成war文件,部署到服务器上的tomcat上的话,需要额外配置。需要注意的是,Spring WebFlux 并不完全依赖Servlet API,因此,Spring WebFlux 不支持打包成war。具体打包成war步骤具体如下:

  1. 需要提供SpringBootServletInitializer子类,并且需要覆写它的configure方法。配置后可以获得Spring Framework’s Servlet 3.0的支持,同时可以配置启动项。通常情况下都是在主类上继承SpringBootServletInitializer并且覆写configure方法。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
 return application.sources(Application.class);
 }
 public static void main(String[] args) {
 SpringApplication.run(Application.class, args);
 }
}
  1. 添加或修改pom.xml文件中的packaging节点的配置为war
<!-- 放在project下 -->
<packaging>war</packaging>
  1. 确保在打包的时候不会打包默认的嵌入式的服务器,为了达到此效果,需要在pom.xml中标记一下嵌入式服务器的依赖为provided
<dependencies>
 <!-- … -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-tomcat</artifactId>
 <scope>provided</scope>
 </dependency>
 <!-- … -->
</dependencies>
  1. 再次用maven进行打包。
mvn clean package

需要注意的是,如果你使用的是Spring Boot build tools,那么执行过上述操作后,除了生成了war文件,可以放在单独的Tomcat容器中外,还可以使用java -jar命令进行运行。原因在于嵌入式容器已经打包在lib-provided目录中了。

参考Spring Boot Reference Documentation 9.17.1章节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值