响应式库
spring-webflux
依赖于 reactor-core
,并在内部使用它来组合异步逻辑和提供 Reactive Streams 支持。
通常,WebFlux API 返回 Flux
或 Mono
(因为它们在内部使用),并宽松地接受任何 Reactive Streams Publisher
实现作为输入。
当提供 Publisher
时,它只能被视为具有未知语义的流(0..N)。
但是,如果语义已知,则应使用 Flux
或 Mono.from(Publisher)
包装它,而不是传递原始 Publisher
。
使用 Flux
与 Mono
很重要,因为它有助于表达基数——例如,是期望单个还是多个异步值,
这对于做出决策(例如,在编码或解码 HTTP 消息时)至关重要。
对于注解控制器,WebFlux 透明地适应应用程序选择的响应式库。
这是借助 ReactiveAdapterRegistry
完成的,
它为响应式库和其他异步类型提供可插拔支持。
该注册表内置支持 RxJava 3、Kotlin 协程和 SmallRye Mutiny,但您也可以注册其他库。