将 Spring-Boot 应用部署在 Tomcat 中运行

Spring-Boot 提供内置的 Tomcat 直接打包为 Jar 格式后运行 @SpringBootApplication Application 下的 main 方法即可,但是本人更喜欢使用 Tomcat 来运行应用,Spring-Boot 同样提供了方法。

1. 将Application 继承SpringBootServletInitializer 并重写configure 方法

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2. 检查pom.xml 文件

  • 打包方式为 war
    <packaging>war</packaging>
    

  • 打包时排除 Tomcat 组件

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
    </dependency>
    

3.打包成 War 包并放入 Tomcat 中运行

以上配置更改后即可在 Tomcat 中运行,其 application.yml 配置文件中的端口与应用名在 Tomcat 中失效

server:
    port: 8080
    context-path: /test

遵循 Tomcat 的配置原则,端口号在 Tomcat 的 conf\server.xml 文件中配置,应用名根据 war 包的名称,需要注意 Spring-Boot 的 JDK 版本,放在与之兼容的 Tomcat 版本中运行。


参考链接

spring-boot项目在外部tomcat环境下部署遇到的问题

发表评论

发表回复

*

沙发空缺中,还不快抢~