跳至主要內容

Spring-Boot-WebFlux-工作流程及原理

soulballad架构源码分析SpringBoot源码分析约 354 字大约 1 分钟

Spring Boot WebFlux:【从零开始学Spring Boot】-14.Spring Boot WebFlux初体验

1.Spring WebFlux 运行流程

在 Spring Mvc 中处理核心类是 DispatcherServlet,在 Spring WebFlux 中则是 DispatcherHandler。

  1. 用户发送请求至请求处理器 DispatcherHandler。
  2. DispatcherHandler 收到请求调用 handle 方法,判断是否有 handlerMappings ,如果没有直接返回 404;否则执行下一步。
  3. 从 handlerMappings 找到一个处理当前请求的映射器 HandlerMapping,一般使用的是 url 映射器。
  4. 如果没有找到能处理当前请求的映射器,返回404;否则调用 HandlerMapping。
  5. 使用找到的映射器;并从 handlerAdapters 中找到一个适配器;调用适配器的 handle 方法。
  6. 调用完成返回 HandlerResult,里面封装了返回值,映射器,异常等信息。
  7. 将 handlerResult 返回给 DispatcherHandler。
  8. DispatcherHandler 处理返回的 HandleResult。
  9. 从 resultHandlers 中找到一个结果处理器。
  10. 返回这个结果处理器。
  11. 然后调用它的 handleResult 方法,生成响应信息。
  12. 将响应信息返回,比如直接输出的内容、设置到responseBody中的返回体或者渲染页面等。
  13. 将响应信息返回给 DispatcherHandler 。
  14. DispatcherHandler 返回响应给用户。

2.Spring WebFlux 运行原理

上次编辑于:
贡献者: soulballad