SpringBoot3_Web开发

时间:2024-11-20 06:58:34
  • 请求进来会先来到 DispatchServletdoDispatch() 进行处理
  • 找到一个 HandlerAdapter 适配器。利用适配器执行目标方法
  • RequestMappingHandlerAdapter 来执行,调用 invokeHandlerMethod() 来执行目标方法
  • 目标方法执行之前,会准备好两个东西
    • HandlerMethodArgumentResolver:参数解析器,确定目标方法每个参数值
    • HandlerMethodReturnValueHandler:返回值处理器,确定目标方法的返回值该怎么处理
  • RequestMappingHandlerAdapter 里的 invokeAndHandle() 真正执行目标方法
  • 目标方法执行完成,会返回 返回值对象
  • 找到一个合适的返回值处理器 HandlerMethodReturnValueHandler
  • 最终找到 RequestResponseBodyMethodProcessor 能处理 标注了 @Response 注解的方法
  • RequestResponseBodyMethodProcessor 调用 writeWithMessageConverters,利用 MessageConverter 把返回值写出去