Spring boot在外部tomcat的部署



Sprign boot提供了内嵌的tomcat, 允许我们直接把项目打包成fat jar来运行. 但有时候我们仍想像之前一样,使用外部的tomcat, 将项目打成war包来发布. Spring boot同样提供了非常简单的解决方案

第一步, 在pom中添加<packaging>war</packaging>标签

第二步, 主配置类Application.java继承SpringBootServletInitializer并重写configure方法

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

第三步, 修改pom, 把内嵌tomcat改成provided. 这样我们可以很方便的切换成在本地通过main方法来启动应用(去掉provided就可以了).

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

这三步就可以像原来一样打包部署到外部tomcat