spring mvc 关键类

DispatchServlet

持有数据:

  • 其他几个关键类的实例

主要功能:

  • 主流程控制
    1. 获取可用的RequestMappingHandlerMapping
    2. 使用RequestMappingHandlerMapping,通过request,获取handler(HandlerExecutionChain)
    3. 通过handler获取可用的RequestMappingHandlerAdapter
    4. 通过RequestMappingHandlerAdapter执行handler,返回ModelAndView
    5. 使用ModelAndView中的ModelView进行渲染.
    6. 清理操作
    7. 上述流程中间伴随的异常处理等.

RequestMappingHandlerMapping

持有数据:

  • url与handler的对应关系

主要功能:

  1. 根据request找到对应的handler的.
  2. 把handler包装成HandlerExecutionChain返回

RequestMappingHandlerAdapter

持有数据:

  1. 数据转换器
  2. 参数解析器
  3. 返回值处理器
  4. 视图解析器
  5. 内容协商管理器
  6. ……

主要功能:

  1. 构造ServletInvocableHandlerMethod
  2. 调用ServletInvocableHandlerMethodinvokeAndHandle方法
  3. 将上一步的调用结果封装成ModelAndView并返回.

ServletInvocableHandlerMethod

持有数据(从RequestMappingHandlerAdapter传过来的):

  1. 数据转换器
  2. 参数解析器
  3. 返回值处理器

主要功能:

  1. 准备参数(主要关注点,后续展开)
  2. 执行方法
  3. 处理返回值(主要关注点,后续展开)

你可能感兴趣的:(spring mvc 关键类)