SpringBoot项目war部署Tomcat注意事项


前言

本文是将项目打成war包部署在tomcat服务器中


启动类继承SpringBootServletInitializer

@SpringBootApplication
public class TestApplication extends SpringBootServletInitializer {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(TestApplication.class, args);
    }

    /**
     * ~为何要继承SpringBootServletInitializer,实现configure方法?
     *  正常springboot项目在创建时会生成启动类, 这个类启动的是内置的tomcat,
     *  有时候也需要外部的容器,这时候就需要一个web.xml文件.
     *  而这个文件是在spring+springMVC中,springboot中没有这个文件,考虑功能上不能丢弃,
     *  所以继承SpringBootServletInitializer这个类来替代web.xml的功能,进而使用外部的tomcat(web容器启动项目),
     *  自己可以设置端口号,项目名,继承之后要实现他的configure方法
     * @param builder
     * @return
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    
    
        return builder.sources(TestApplication.class);
    }
}

配置application.yml文件

context-path:配置访问前缀
此处配置的前缀应该与Tomcat-webapps目录下war包解压的名字对应。

server:
  port: 8099
  tomcat:
    context-path: /test

部署案例

将war包部署在Tomcat容器中的webapps目录下:
启动Tomcat时会自动解压war包,包名应与上文application.yml配置文件中配置的前缀对应
如果,没有配置访问前缀的话,会导致404问题。
在这里插入图片描述

访问

浏览器访问地址:127.0.0.1:8080/test/


猜你喜欢

转载自blog.csdn.net/SmallCat0912/article/details/128827201