当前位置: 首页 > news >正文

wordpress 在线聊天插件福建seo排名培训

wordpress 在线聊天插件,福建seo排名培训,企业建立网站需要什么条件,百度联盟怎么做网站目录 1.关键实例的创建1.1 实例创建1.2 初始化 2.处理请求的关键流程2.1 从ReactorHttpHandlerAdapter开始2.1 DispatcherHandler的初始化2.2查找mapping handler2.3 处理请求(执行handler)2.4 返回结果处理 3.webflux的配置装配参考: WebFlux是Spring 5.0框架推出的…

目录

  • 1.关键实例的创建
    • 1.1 实例创建
    • 1.2 初始化
  • 2.处理请求的关键流程
    • 2.1 从ReactorHttpHandlerAdapter开始
    • 2.1 DispatcherHandler的初始化
    • 2.2查找mapping handler
    • 2.3 处理请求(执行handler)
    • 2.4 返回结果处理
  • 3.webflux的配置装配
  • 参考:

WebFlux是Spring 5.0框架推出的一个全新的响应式Web框架,是基于Project Reactor构建的,它旨在利用响应式编程的特性来构建异步非阻塞的应用程序。

在io密集型的场景中,使用webflux这类响应式io框架,能大幅提高系统的吞吐量。

本文主要是关于其主流程的梳理,包括关键实例的创建、配置等。

1.关键实例的创建

1.1 实例创建

webflux的通信框架采用的是netty,类比于传统的springboot的tomcat ,其对应的server实例在springboot中 netty server的初始化:

org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext#onRefresh

在这里插入图片描述
在这里插入图片描述
其中各通信框架的选择从 ReactiveWebServerFactory 的实现类开始:

org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext#getWebServerFactory

在这里插入图片描述
在这里插入图片描述

创建 webServer 的关键方法是:
org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory#getWebServer

在这里插入图片描述

注意此处的 handlerAdapter为 ReactorHttpHandlerAdapter

1.2 初始化

实例创建后,启动webServer:
org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext#finishRefresh

在这里插入图片描述

2.处理请求的关键流程

2.1 从ReactorHttpHandlerAdapter开始

org.springframework.http.server.reactive.ReactorHttpHandlerAdapter#apply

在这里插入图片描述

依次调用:
org.springframework.web.server.adapter.HttpWebHandlerAdapter#handle
org.springframework.web.reactive.DispatcherHandler#handle

处理请求的核心控制器 org.springframework.web.reactive.DispatcherHandler(等同于阻塞方式的DispatcherServlet

请求的关键方法: org.springframework.web.reactive.DispatcherHandler#handle

在这里插入图片描述

2.1 DispatcherHandler的初始化

initStrategies()在启动时会注册相应的处理类:
org.springframework.web.reactive.DispatcherHandler#initStrategies

在这里插入图片描述

HandlerMapping 的实现类:
在这里插入图片描述
HandlerAdapter 的实现类:
在这里插入图片描述

HandlerResultHandler 的实现类
在这里插入图片描述

  • 注册url 与方法的映射: AbstractHandlerMethodMapping#initHandlerMethods
  • 最终调用的注册方法为:AbstractHandlerMethodMapping#registerHandlerMethod在这里插入图片描述

2.2查找mapping handler

webflux跟springMVC相同,使用的是 @RequestMapping 注解定义接口,对应的mappingHandlerorg.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping

RequestMappingHandlerMappingHandlerMapping的实现类

查找handler的具体方法为: AbstractHandlerMethodMapping#getHandlerInternal

2.3 处理请求(执行handler)

org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter#handle

RequestMappingHandlerAdapterHandlerAdapter 的实现类

在这里插入图片描述

2.4 返回结果处理

org.springframework.web.reactive.DispatcherHandler#handleResult

在这里插入图片描述

此处getResultHandler(result) 返回的是 ResponseBodyResultHandler , 为 HandlerResultHandler 的实现类
其中封装了将CompletableFuture自动封装为mono的逻辑

3.webflux的配置装配

WebFluxAutoConfiguration 自动装配时先自动装配EnableWebFluxConfiguration

进而配置类调用以此为:
EnableWebFluxConfiguration -> DelegatingWebFluxConfiguration -> WebFluxConfigurationSupport

最终 WebFluxConfigurationSupport 不仅配置 DispatcherHandler 还同时配置了其他很多WebFlux核心组件包括 异常处理器WebExceptionHandler,映射处理器处理器HandlerMapping,请求适配器HandlerAdapter,响应处理器HandlerResultHandler等。

参考:

你的响应阻塞了没有?–Spring-WebFlux源码分析

reactor3 源码分析_public: void subscribe(subscriber* s){ void callba-CSDN博客

深入剖析 Spring WebFlux

Spring: Blocking vs non-blocking: R2DBC vs JDBC and WebFlux vs Web MVC (amis.nl)

Performance of relational database drivers. R2DBC vs JDBC (amis.nl)

http://www.yidumall.com/news/58517.html

相关文章:

  • 龙华营销型网站制作哪家好查询网站注册信息
  • 网站制作公司 全贵州社会新闻最新消息
  • 网站加载很慢营业推广策略
  • 易旅游网站建设企业网搭建
  • wordpress教程下载网站主题搜索引擎优化排名品牌
  • 北海网站开发网络营销策略案例
  • 高端网站建设 司法搜索优化整站优化
  • 做网站的客户需求百度帐号个人中心
  • 网站的数据库丢失百度搜索关键词
  • 单位网站建设的优势免费行情软件app网站下载大全
  • 一个网站锚文本可以做几个市场调研报告ppt模板
  • 做网站的网络公司好看的web网页
  • 网站建设字体颜色代码seo教程seo入门讲解
  • 没网站做推广网站快速收录软件
  • 政府网站集约化建设模式网站友链查询源码
  • 淮南北京网站建设itmc平台seo优化关键词个数
  • 广州一起做的网站网络营销的成功案例有哪些
  • 临沂网站建设和轶件安装系统优化的意义
  • 做外汇交易的浏览什么网站太原seo服务
  • 网站添加邮件发送怎么做亚马逊关键词工具哪个最准
  • 网站建设及运营服务流程网站推广与优化平台
  • 网站界面设计需求营销策略怎么写
  • 吉安市城乡建设局网站各大网站提交入口网址
  • 自建网站多少钱网站推广的主要方式
  • vps做自己的网站搜索引擎优化seo培训
  • 芜湖做网站的邓健照片成都最新疫情
  • 武汉电脑网站制作公司广州网站定制多少钱
  • 品牌网络推广怎么做来宾seo
  • 自己做的网站外网访问网络营销活动案例
  • 美女教师做爰网站网络平台运营是做什么的