对于最新的稳定版本,请使用 Spring Framework 6.2.0! |
响应式库
spring-webflux
取决于reactor-core
并在内部使用它来编写异步
logic 并提供 Reactive Streams 支持。通常,WebFlux API 返回Flux
或Mono
(因为它们是内部使用的)并宽容地接受任何 Reactive StreamsPublisher
implementation 作为输入。的使用Flux
对Mono
很重要,因为
它有助于表达基数 — 例如,无论是单个还是多个异步
值,这对于做出决策可能是必不可少的(例如,当
编码或解码 HTTP 消息)。
对于带注释的控制器,WebFlux 透明地适应由
应用程序。这是在ReactiveAdapterRegistry
哪
为反应式库和其他异步类型提供可插拔支持。注册表
内置了对 RxJava 3、Kotlin 协程和 SmallRye Mutiny 的支持,但您可以
也要注册其他人。
对于功能性 API(例如 [webflux-fn],WebClient
等)、一般规则
对于 WebFlux API,适用 —Flux
和Mono
作为返回值和一个 Reactive StreamsPublisher
作为输入。当Publisher
,无论是自定义的还是来自另一个响应式库,
,则只能将其视为语义未知 (0..N) 的流。但是,如果
语义是已知的,你可以用Flux
或Mono.from(Publisher)
相反
传递原始Publisher
.
例如,给定一个Publisher
那不是Mono
、Jackson JSON 消息编写器
需要多个值。如果媒体类型暗示无限流(例如,application/json+stream
),则单独写入和刷新值。否则
值缓冲到列表中并呈现为 JSON 数组。