问题描述:tomcat8,jdk8,部署springboot项目。项目端口8080,将项目打成war包放入tomcat webapps目录下,启动tomcat没有报错,tomcat有猫的主页localhost:8080可以访问,webapps下项目包下WEB-INF内有classes文件,
但访问 localhost:8080/项目包名/接口名 返回404
问题解决:新建 SpringBootStartApplication类,继承SpringBootServletInitializer
1.与入口类同级
2.加载入口类
结果:重新打war包部署后访问 localhost:8080/项目包名/接口名 成功
讨论:为什么要继承SpringBootServletInitializer ?
正常springboot项目在创建的时候是会生成启动类的,这个类启动的是内置的tomcat容器,
但当我们使用外部的容器时就会发现问题:我们配置的时候好像少了一个web.xml文件,这个是在spring+springmvc时代的配置
文件,但是在springboot中是没有这个文件的,但是功能上来说我们不能丢弃这,所以才需要继承SpringBootServletInitializer这
个类来替代web.xml的功能。