Spring MVC 简介
Spring Web MVC 是基于 Servlet API 的原始 Web 框架,从一开始就包含在 Spring 框架中。“Spring Web MVC” 的正式名称来自其源模块的名称(Spring -webmvc),但它通常被简称为“Spring MVC”。
与 Spring Web MVC 并行,Spring Framework 5.0 引入了一个反应式堆栈 Web 框架,它的名字 “Spring WebFlux” 也是基于它的源模块(Spring - WebFlux)。
DispatcherServlet
Spring MVC,和许多其他 web 框架一样,是围绕前端控制器模式设计的,其中有一个中央 Servlet。
这个中央 Servlet 就是 DispatcherServlet。
整个 SpringMVC 框架,就是围绕 DispatcherServlet 设计的,这个 Servlet 会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等。
DispatcherServlet 和任何 Servlet 一样,需要使用 Java 配置或在 web.xml 中根据 Servlet 规范声明和映射。反过来,DispatcherServlet 使用 Spring 配置来发现它需要的委托组件,用于请求映射、视图解析、异常处理等等。
SpringMVC 的运行流程
如下图
⑴ 用户发送请求至前端控制器 DispatcherServlet
⑵ DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。
⑶ 处理器映射器根据请求 url 找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。
⑷ DispatcherServlet 通过 HandlerAdapter 处理器适配器调用处理器
⑸ 执行处理器(Controller,也叫后端控制器)。
⑹ Controller 执行完成返回 ModelAndView
⑺ HandlerAdapter 将 controller 执行结果 ModelAndView 返回给 DispatcherServlet
⑻ DispatcherServlet 将 ModelAndView 传给 ViewReslover 视图解析器
⑼ ViewReslover 解析后返回具体 View
⑽ DispatcherServlet 对 View 进行渲染视图(即将模型数据填充至视图中)。
⑾ DispatcherServlet 响应用户。
从上面可以看出,DispatcherServlet 有接收请求,响应结果,转发等作用。有了 DispatcherServlet 之后,可以减少组件之间的耦合度。
参考资源
2.Spring MVC 4.2.4.RELEASE 中文文档
3.https://my.oschina.net/liughDevelop/blog/1622646
每天学习一点点,每天进步一点点。