Spring Boot WebFlux:【从零开始学Spring Boot】-14.Spring Boot WebFlux初体验
1.Spring WebFlux 运行流程
在 Spring Mvc 中处理核心类是 DispatcherServlet,在 Spring WebFlux 中则是 DispatcherHandler。
- 用户发送请求至请求处理器 DispatcherHandler。
- DispatcherHandler 收到请求调用 handle 方法,判断是否有 handlerMappings ,如果没有直接返回 404;否则执行下一步。
- 从 handlerMappings 找到一个处理当前请求的映射器 HandlerMapping,一般使用的是 url 映射器。
- 如果没有找到能处理当前请求的映射器,返回404;否则调用 HandlerMapping。
- 使用找到的映射器;并从 handlerAdapters 中找到一个适配器;调用适配器的 handle 方法。
- 调用完成返回 HandlerResult,里面封装了返回值,映射器,异常等信息。
- 将 handlerResult 返回给 DispatcherHandler。
- DispatcherHandler 处理返回的 HandleResult。
- 从 resultHandlers 中找到一个结果处理器。
- 返回这个结果处理器。
- 然后调用它的 handleResult 方法,生成响应信息。
- 将响应信息返回,比如直接输出的内容、设置到responseBody中的返回体或者渲染页面等。
- 将响应信息返回给 DispatcherHandler 。
- DispatcherHandler 返回响应给用户。