响应式库

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,但您也可以注册其他库。