在说这个之前先来说一下java中jar包和war包的区别:
- war包:是做好一个web应用后,通常是网站,打成包部署到容器中,包含所有的资源信息,是可以直接运行的web模块。
- jar包:通常是开发时要引用通用类,打成包便于存放管理,通常只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的
好,接下来说下为什么需要继承SpringBootServletInitializer,正常springboot项目在创建的时候是会生成启动类的,这个类启动的是内置的tomcat容器,但是我们也是可以用外部的容器,这个时候我们发现有一个问题就是,我们配置的时候好像少了一个web.xml文件,这个是在spring+springmvc时代的配置文件,但是在springboot中是没有这个文件的,但是功能上来说我们不能丢弃这,所以才需要继承SpringBootServletInitializer这个类来替代web.xml的功能。