今天我想跟大家分享的是使用springboot如何创建可部署在外部Tomcat的war包?网上都讲了很多,不过我还是要记录一下:

springboot官方文档上面写的已经很清楚了(85.1Create a deployable warfile)

1、主类继承SpringBootServletInitializer且覆盖它的configure方法。

@SpringBootApplication
publicclassApplicationextendsSpringBootServletInitializer{
@Override
protectedSpringApplicationBuilderconfigure(SpringApplicationBuilderapplication){
returnapplication.sources(Application.class);
}
publicstaticvoidmain(String[]args)throwsException{
SpringApplication.run(Application.class,args);
}
}

2、修改你的build配置以便你的项目生成war文件而不是jar文件。如果你使用了Maven并且使用了spring-boot-starter-parent这个类,你只需要修改pom.xml的packaging 为war就可以了(不熟悉maven的同学可以先学习一下maven相关知识)

<packaging>war</packaging>

如果你使用Gradle,你需要修改build.gradle应用war插件

applyplugin:'war'

3、该过程的最后一步是确保嵌入的servlet容器不会干扰将要部署WAR文件的servlet容器。为此,需要标记所提供的内嵌servlet容器依赖为provided。

maven配置

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

Gradle配置

dependencies{//…providedRuntime'org.springframework.boot:spring-boot-starter-tomcat'//…}