跳到主要内容

响应式库

ChatGPT-4o-mini 中英对照 Reactive Libraries

spring-webflux 依赖于 reactor-core,并在内部使用它来组合异步逻辑并提供 Reactive Streams 支持。通常,WebFlux API 返回 FluxMono(因为它们在内部使用),并宽松地接受任何 Reactive Streams Publisher 实现作为输入。当提供一个 Publisher 时,它只能被视为具有未知语义的流(0..N)。然而,如果语义已知,您应该使用 FluxMono.from(Publisher) 将其包装,而不是直接传递原始的 Publisher。使用 FluxMono 之间的区别很重要,因为它有助于表达基数 — 例如,是否期望单个或多个异步值,这对于做出决策(例如,在编码或解码 HTTP 消息时)可能是至关重要的。

对于带注解的控制器,WebFlux 会根据应用程序选择的反应式库透明地进行适配。这是通过 ReactiveAdapterRegistry 的帮助来实现的,该注册表提供了对反应式库和其他异步类型的可插拔支持。该注册表内置对 RxJava 3、Kotlin 协程和 SmallRye Mutiny 的支持,但您也可以注册其他库。