主要的脉络:
首先SpringBoot内嵌了一个Tomcat,web项目的入口在Tomcat,本身最初我们在学校学习servlet的时候,会配置web.xml的方式,那么我们要实现零配置xml势必要将web.xml的功能全部替代,web.xml主要功能有context-param,listener会获取context-param的参数; listener监听器是为了Tomcat启动的时候可以执行这个Listener,初始化SpringContext;servlet与servletMapping,相当于于controller的映射关系,spring官网给我们提供了如何替代的方法,实现WebApplicationInitializer实现类的OnStartUp方法,并复制必要的7行代码,即可实现。那么为什么实现WebApplicationInitializer就可以了呢?因为servlet3.1规定了容器启动时会调用ServletContainerInitializer这个接口实现并且这个实现类加了webApplicationInitializer这个注解,会把这个注解作为类的集合传到OnStartUp中的webAppInitializerClasses中,实例化for循环调用
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b872567d3e095c2d1e885dfccdba83b8.jpeg)