Spring MVC 的执行原理是面试时经常会问到的问题,会使用Spring MVC完全不够,还需要理解其内部原理,如下:
- DispatcherServlet表示前端控制器,是整个SpringMVC的控制中心,用户发出请求,DispatcherServlet接收请求并拦截请求;
- HandlerMapping为处理器映射,由DispatcherServlet调HandlerMapping,HandlerMapping根据url查找Handler
- HandlerExcution表示具体的Handler,主要作用是根据url查找控制器;
- HandlerExcution将解析后的信息传递给DispathcerServlet;
- HandlerAdapter表示处理器适配器,按照特定的规则去执行Handler
- Handler让具体的Controller执行
- Controller将具体的执行信息返回给HandlerAdapter,如:ModelAndView
- HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet
- Dispatcher Servlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名
- 视图解析器将解析的逻辑视图名传给DispatcherServlet
- Dispatcher Servlet根据视图解析器解析视图结果,调用具体的视图
- 最后呈现在网页
(实线表示Spring MVC框架内部的运行,不需要我们去操作,虚线表示写代码时我们需要完成的步骤)