spring-boot默認(rèn)提供內(nèi)嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以啟動(dòng)。但是,有時(shí)候我們更希望一個(gè)tomcat來管理多個(gè)項(xiàng)目,這種情況下就需要項(xiàng)目是war格式的包而不是jar格式的包。spring-boot同樣提供了解決方案,只需要簡單的幾步更改就可以了,這里提供maven項(xiàng)目的解決方法:
1.將項(xiàng)目的啟動(dòng)類Application.java繼承SpringBootServletInitializer并重寫configure方法
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
2.在pom.xml文件中,project下面增加package標(biāo)簽
<packaging>war</packaging>
3.還是在pom.xml文件中,dependencies下面添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
這樣,只需要以上3步就可以打包成war包,并且部署到tomcat中了。需要注意的是這樣部署的request url需要
在端口后加上項(xiàng)目的名字才能正常訪問