新建SpringBoot项目时使用war包,说明这是一个web项目,因此发布的时候我把它放在tomcat的webapps下面。

注意:这里要让SpringBoot内置tomcat失效
  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-tomcat</artifactId>
  4. <scope>provided</scope>
  5. </dependency>

让启动类继承SpringBootServletInitializer并重写方法

  1. @SpringBootApplication
  2. public class Application extends SpringBootServletInitializer{
  3. @Override
  4. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  5. return builder.sources(Application.class);
  6. }
  7. public static void main(String[] args) {
  8. SpringApplication.run(Application.class, args);
  9. }
  10. }

tomcat设置

在server.xml中找到
  1. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

在这个后面加上

  1. <Context path="" docBase="/Users/jinying/apache-tomcat-8.5.57/webapps/index" reloadable="true"/>

其中docBase=”/Users/jinying/apache-tomcat-8.5.57/webapps/index” 写的是路径

  1. 相对路径的写法是 docBase="./index"