一.Web容器的初始化过程
1.Listener(监听器)
执行contextInitialized()方法,初始化Root上下文,并创建Spring ioc容器
2.Filter(过滤器)
执行init()方法
3.Servlet
执行init()方法,初始化WebMvc上下文,并创建SpringMVC ioc容器
(注: Spring和SpringMVC的容器具有父子关系,Spring容器为父容器,SpringMVC为子容器,子容器可以引用父容器中的Bean,而父容器不可以引用子容器中的Bean)
二.DispatchServlet初始化流程
1.HttpServlet
初始化时,执行其init()方法
2.HttpServletBean
继承HttpServlet并重写init()方法
将配置参数映射到此servlet的bean属性,以及暴露了空实现initServletBean()让子类实现
3. FrameworkServlet
继承HttpServletBean并重写initServletBean()方法
为Servlet创建并初始化ConfigurableWebApplicationContext容器,以及暴露了空实现onRefresh()让子类实现
4 DispatcherServlet
继承FrameworkServlet并重写onRefresh()方法
初始化这个servlet使用的策略对象