专栏名称: 码农小胖哥
技术公众号:码农小胖哥
目录
相关文章推荐
51好读  ›  专栏  ›  码农小胖哥

Spring Boot 2 实战:以 War 包的形式部署

码农小胖哥  · 掘金  ·  · 2019-11-05 02:27

正文

阅读 71

Spring Boot 2 实战:以 War 包的形式部署

1. 前言

Spring Boot 提供了内置的 tomcat undertow jetty 三种 Servlet Web 容器。让我们开箱即用,可以迅速以 JAR 启动一个 Web 应用。但是在某些场景中我们可能还需要将我们的 Spring Boot 容器以 War 的形式进行传统的部署。这时我们就需要通过借助于 SpringBootServletInitializer 来实现。

2. SpringBootServletInitializer

SpringBootServletInitializer WebApplicationInitializer 的实现,它从部署在 Web 容器上的传统 WAR 包运行 Spring Boot 应用。该类将 Servlet Filter ServletContextInitializer Bean 从应用程序上下文绑定到服务器。 SpringBootServletInitializer 类还允许我们通过覆盖 SpringApplicationBuilder configure(SpringApplicationBuilder application) 方法来配置由 Servlet 容器运行的应用程序。

3. Spring Boot War 部署

接下来我们来讲述详细的 Spring Boot War 部署步骤。

3.1 修改打包方式为 War

修改 Spring Boot 项目的 pom.xml 文件将打包方式修改为 war

默认打 jar jar 我们改为打 war war

3.2 排除 内嵌的 Web 容器。

默认使用内嵌 Tomcat Web 容器。如果此前你使用了内嵌的 Jetty Undertow ,请务必清除相关的 Starter 依赖。然后我们可以使用两种方式来处理:

  • 方法一

Spring Boot 内嵌的 Tomcat 默认已经集成在 spring-boot-starter-web 包里,所以我们要排除掉它。







请到「今天看啥」查看全文