Bootstrap

SpringMVC的核心组件及工作流程

SpringMVC的核心组件:

  1. DispathcerServlet:前端控制器,负责调度其他组件的执行,可以降低不同组件之间的耦合性,是整个SpringMVC的核心模块
  2. Handler:处理器,完成具体的业务逻辑,相当于Servlet
  3. HandlerMapping:DispatcherServlet通过HandlerMapping将请求映射到不同的Handler
  4. HandlerInterceptor:处理器拦截器,是一个接口,如果我们需要一些拦截处理,可以通过实现该接口完成
  5. HandlerExecutorChain:处理器执行链,包括两部分内容:Handler和HandlerInterceptor[系统会有一个默认的HandlerInterceptor,如果需要额外的,可以额外添加拦截器进行设置]
  6. HandlerAdapter:处理器适配器,Handler执行业务方法之前,需要进行一系列的操作,包括表单数据验证,数据类型的转换,将表单数据封装到POJO……,这一系列操作都是由该组件完成
  7. ModelAndView:封装了数据和视图信息,作为Handler的处理结果,返回给DispatcherServlet
  8. ViewResolver:视图解析器,DispatcherServlet通过它可以将逻辑视图转换为物理视图,最终将渲染的结果响应给客户端

工作流程

  1. 客户端请求被DispatcherServlet接收
  2. 根据HandlerMapping映射到不同的Handler
  3. 生成Handler和HandlerInterceptor
  4. Handler和HandlerInterceptor以HandlerExecutionChain的形式统一并返回给DispatcherServlet
  5. DispatcherServlet通过HandlerAdapter调用Handler的方法完成具体的业务逻辑处理
  6. 返回一个ModelAndView对象给DispatcherServlet
  7. DispatcherServlet将获取到的ModelAndView对象传给ViewResolver视图解析器,将逻辑视图解析为物理视图
  8. ViewResolver返回一个View给DispatcherServlet
  9. DispatcherServlet根据View进行视图渲染【数据填充到视图中】
  10. DispatcherServlet将渲染之后的视图响应给客户端、

流程图如下:
SpringMVC各组件的工作流程图

;