Spring MVC设计概览

Spring的上下文体系通过ContextLoader和DispatcherServlet建立并初始化的过程。

在完成对ContextLoaderListener的初始化之后,Web容器开始初始化DispatcherServlet,这个初始化的启动与在web.xml中载入次序的定义有关。DispatcherServlet会建立自己的上下文来持有Spring MVC的Bean对象,在建立自己持有的IOC容器时,会从ServletContext中得到根上下文作为DispatcherServlet持有上下文的双亲上下文。有了这个根上下文,再对自己持有的上下文进行初始化,最后把自己持有的这个上下文保存到ServletContext中,供以后检索和使用。


DispatcherServlet类的继承关系

DispatcherServlet通过继承FrameworkServlet和HttpServletBean而继承了HttpServlet,通过使用Servlet API对Http请求进行响应,称为Spring MVC的前端处理器,同时成为MVC模块与Web容器集成的处理器端。

DispatcherServlet的工作大致可以分为两个部分:一个是初始化部分,由initServletBean启动,通过initWebApplicationContext最终调用DispatcherServlet的initStrategies方法,在这个方法里,DispatcherServlet对MVC模块的其他部分进行了初始化,比如HandlerMapping、ViewResolver等,另一个是对HTTP请求进行响应,作为一个Servlet,Web容器会调用Servlet的doGet和doPost方法,经过FrameworkServlet的processRequest简单处理后,会调用DispatcherServlet的doService方法,这个方法调用中封装了doDispatch,这个doDispatch是Dispatcher实现MVC模式的主要部分。


猜你喜欢

转载自blog.csdn.net/dxh0823/article/details/80717715