如何把多个SpringBoot项目打成war包放在一台Tomcat上运行
## 修改pom.xml文件
### 修改打包方式
```XML
war
修改打包类型为war类型
```
### 修改相关依赖
```XML
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
org.springframework.boot
spring-boot-starter-tomcat
provided
```
### 修改相关插件
```XML
加入以下插件
org.apache.maven.plugins
maven-war-plugin
demo
删除以下插件
```
## 修改springboot项目启动类
启动类继承 **SpringBootServletInitializer** 类,并重写**configure**方法
```JAVA
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return super.configure(builder);
}
}
```
## 修改springboot配置文件application
### application.properties
```properties
springboot项目1:
spring.jmx.enabled=false
spring.jmx.default-domain=domain1
springboot项目2:
spring.jmx.enabled=false
spring.jmx.default-domain=domain2
spring.jmx.enabled的值默认为true
值为true的时候,两个springboot项目是不能同时启动的
spring.jmx.default-domain的值是什么无所谓,只要两个项目的值不一样就行
```
### application.yml
```properties
springboot项目1:
spring:
jmx:
enabled: false
default-domain: domain1
springboot项目2:
spring:
jmx:
enabled: false
default-domain: domain2
```
## 打包运行
打包后,在项目空间的target目录下就可以看到打成的War包
让后吧war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署
然后通过浏览器访问即可
#### 注意:添加访问后缀后,要注意修改前端界面中的资源请求地址,不然可能出现大量404