springboot系列22,WebFlux(下)

本文深入探讨SpringBoot的WebFlux组件,包括核心组件的初始化流程和两种请求处理方式:注解驱动的Annotated Controllers以及函数式端点Functional Endpoints。初始化流程涉及WebFluxAutoConfiguration和HttpHandlerAutoConfiguration,构建DispatcherHandler和HttpWebHandlerAdapter。注解驱动的处理与SpringMVC类似。函数式端点的RouterFunctionMapping在启动时初始化,通过RouterFunction进行请求匹配和处理,实现非阻塞的优势,适合处理延迟和不可预测的网络I/O。
摘要由CSDN通过智能技术生成

核心组件初始化流程

其实看着源码对照着流程图,很容易就能看懂流程是什么样,这里只是描述一下,具体源码就不贴了,自己去看吧。

首先上面部分:自动装配WebFluxAutoConfiguration,他import了EnableWebFluxConfiguration,这个类的作用就是把springboot配置的spring.webflux导进来,用于后面配置。这个类找父类可以找到WebFluxConfigurationSupport,里面会创建DispatcherHandler,而这个类会根据ApplicationContext来初始化(加载mapping、adapter、handler),而这个类实现了WebHandler接口。

下面部分比较简单:自动装配HttpHandlerAutoConfiguration,里面有build方法,以ApplicationContext为参数,关联到了WebHttpHandlerBuilder,里面将FilteringWebHandler带着context中的webHandler、filters构建出来,并加上exceptionHandler包装成ExceptionHandlingWebHandler,最后返回HttpWebHandlerAdapter。

至于图中WebFilter等如何跟ApplicationContext关联,通过看源码可以知道,WebFilter这些接口的初始化方法参数都是ServerWebExchange,里面就有getApplicationContext方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值