在個人看來:spring boot = spring + 預設配置 + 内置tomcat ,若需要将spring boot應用部署到tomcat中,則需要将内置tomcat的依賴移除,并重新配置應用啟動方法。
1. 修改maven依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--使用tomcat做web容器,排除内置的web容器-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--排除了内置的tomcat,需添加servlet-api,以下任選其一-->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!--<dependency>-->
<!--<groupId>javax.servlet</groupId>-->
<!--<artifactId>javax.servlet-api</artifactId>-->
<!--<version>3.1.0</version>-->
<!--<scope>provided</scope>-->
<!--</dependency>-->
<!--<dependency>-->
<!--<groupId>org.apache.tomcat</groupId>-->
<!--<artifactId>tomcat-servlet-api</artifactId>-->
<!--<version>8.0.36</version>-->
<!--<scope>provided</scope>-->
<!--</dependency>-->
2. 修改啟動類,并重寫初始化方法
在Application類同目錄下添加SpringBootStartApplication.java類檔案:
/**
* 修改啟動類,繼承 SpringBootServletInitializer 并重寫 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意這裡要指向原先用main方法執行的Application啟動類
return builder.sources(Application.class);
}
}
tips:
Ideal中使用Maven打成war包:

運作:java -jar xx.war