当我们使用springboot自动配置的时候,过程如下:
1、在DispatchServletAutoConfiguration自动配置类中注册一个DispatcherServletRegistrationBean类
2、这个DispatcherServletRegistrationBean类实现了ServletContextInitializer接口。这个接口只有一个onStartup方法,在tomcat执行start方法后实现了ServletContextInitializer接口的bean会被调用
3、首先是RegistrationBean的onStartup方法,调用register方法
4、继续调用addRegistration方法
5、最终调用servlet容器的api(servletContext.addServlet();)方法,把DispatchServlet注册进去了