方式一
第一步.
在pom.xml文件中加上
大概在这个位置
第二步.
将此处scope标签里的内容改成provided,这样表示在编译时使用内置tomcat 但是打包时不加上这个tomcat的jar包 使用外置的tomcat 防止冲突
第三步.
在Application启动类的同级目录下创建一个ServletInitializer.java的文件,
/**
* 生成war包后的注册启动类
*/
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
}
第四步.
方式二
第一步.
同方式一第一步
第二步.
排除内置tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除内置tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
第三步.
添加一个依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
第四步.
修改启动类内容,继承SpringBootServletInitializer类,重写configure方法
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}
第五步同上