Spring Boot项目自带tomcat容器,启动加载类就可以运行,非常容易,方便开发测试使用,现在项目的发布管理一般有运维发布管理;这样就不能用自带的tomcat插件来启动了,因此我们需要对 Spring Boot项目 做一些改动;
附:相关Spring Boot项目简单的搭建,可以参考 https://blog.csdn.net/liulihui1988/article/details/77963385
1、Spring Boot项目是jar的,不能在直接发布tomcat,需要改成war,修改pom.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jxl</groupId>
<artifactId>springBoot</artifactId>
<version>1.0.0</version>
<!-- <packaging>jar</packaging> -->
<!-- 发布tomcat 容器 -->
<packaging>war</packaging>
2、修改pom.xml文件,去除Spring Boot项目自带的tomcat插件;添加servlet-api包;
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--发布tomcat容器时 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 移除嵌入式tomcat插件 添加 servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
3、重写Spring Boot项目启动加载类,继承 SpringBootServletInitializer 重写 SpringApplicationBuilder 方法;
/**
*
*
* ClassName: Application
* @Description: 发布tomcat 容器 继承 SpringBootServletInitializer 重写 configure
* @date 2018年8月17日 上午10:23:57
* @author user
* @version
* @since JDK 1.8
*/
@SpringBootApplication
@MapperScan("com.jxl.base.dao")
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
4、Maven install 打包成war,直接上传到tomcat wabapp下启动;