本文依赖的版本为 Spring Webmvc 5.2.6.RELEASE
1.web容器启动的时候,会扫描每个jar包下的META-INF/javax.servlet.ServletContainerInitializer。
2.加载这个文件的类是SpringServletContainerInitializer。
3.Spring的应用一启动会加载感兴趣的WebApplicationInitializer接口下的组件(@HandlesTypes({WebApplicationInitializer.class}));
4.并且为WebApplicationInitializer组件创建对象(组件不是接口,不是抽象类)
a.AbstractContextLoaderInitializer:创建根容器:createRootApplicationContext。
b.AbstractDispatcherServletInitializer:
创建一个web的ioc容器:createServletApplicationContext
创建DispatchServlet:createDispatcherServlet
将创建的DispatchServlet放入到ServletContext中
c.AbstractAnnotationConfigDispatcherServletInitializer:注解方式处理DispatchServlet初始化器
创建根容器:createRootApplicationContext
getRootConfigClasses 传入一个配置类
创建web的ioc容器,createServletApplicationContext,getServletConfigClasses获取配置类
网友评论