DispatcherServlet类图
DispatcherServlet时序图
HttpServletBean覆写了init方法,对初始化过程做了一些处理
MutablePropertyValues
1.将init-param的key,value封装到PropertyValue实体类中
2.将propertyValue放入到propertyValueList中
3.使用BeanWrapper构造DispatcherServlet
--> bw.setPropertyValues(pvs, true);//依赖注入的方式初始化属性
总结一下各个Servlet的作用:
1. HttpServletBean
主要做一些初始化的工作,将web.xml中配置的参数设置到Servlet中。比如servlet标签的子标签init-param标签中配置的参数。
2. FrameworkServlet
将Servlet与Spring容器上下文关联。其实也就是初始化FrameworkServlet的属性webApplicationContext,这个属性代表SpringMVC上下文,它有个父类上下文,既web.xml中配置的ContextLoaderListener监听器初始化的容器上下文。
3. DispatcherServlet
初始化各个功能的实现类。比如异常处理、视图处理、请求映射处理等。
DispatcherServlet处理请求流程