Spring Boot 整合 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

<packaging>warpackaging>
  1. 确保在打包的时候不会打包默认的嵌入式的服务器,为了达到此效果,需要在pom.xml中标记一下嵌入式服务器的依赖为provided
<dependencies>
 
 <dependency>
 <groupId>org.springframework.bootgroupId>
 <artifactId>spring-boot-starter-tomcatartifactId>
 <scope>providedscope>
 dependency>
 
dependencies>
  1. 再次用maven进行打包。
mvn clean package

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

参考Spring Boot Reference Documentation 9.17.1章节

你可能感兴趣的:(Spring,spring,boot,tomcat,java)