Springboot 开发的 web 项目,根据个人喜好,可以使用 jar 包运行,也可以使用 war 包运行,本文主要是用 war 包来通过 Tomcat 来进行部署,下面是使用Tomcat 部署 war 包的几点注意事项:
- 修改工程 pom.xml 文件打包类型
<packaging>war</packaging>
- springboot 自身 Tomcat 依赖排除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope> <!-- 主要是这个作用域 -->
</dependency>
- 继承SpringBootServletInitializer类,两种方式:①启动类直接继承,并重写configure()方法;②启动类同级新建一个类继承,同样重写configure()方法;
@EnableTransactionManagement
@EnableCaching
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//注意这里传的 Class 必须是启动类
return builder.sources(MyApplication.class);
}
}
- 完成以上三步,就可以直接在 Tomcat中发布,此时在 application.yml 中配置的 server相关的配置即失效,统一使用外部的 Tomcat进行管理。
- 为了防止访问静态资源出现问题,修改 pom.xml 中打包 war 包名称,名称与 Tomcat->webapps 下部署的应用文根一致即可。
<build>
<finalName>MyApplication</finalName>
</build>
基本就是以上几个步骤,后面有遇到其他问题,再进行记录。