响应式库

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