对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cn

响应式库

spring-webflux依赖并在内部使用它来编写异步 logic 并提供 Reactive Streams 支持。通常, WebFlux API 返回或(因为这些是内部使用的)并宽容地接受任何 Reactive Streams 实现作为 Importing。使用 versus 很重要,因为 它有助于表达基数 — 例如,无论是单个还是多个异步 值,这对于做出决策可能是必不可少的(例如,当 编码或解码 HTTP 消息)。reactor-coreFluxMonoPublisherFluxMonospring-doc.cn

对于带注释的控制器,WebFlux 透明地适应由 应用程序。这是在 ReactiveAdapterRegistry 的帮助下完成的,它 为反应式库和其他异步类型提供可插拔支持。注册表 内置了对 RxJava 3、Kotlin 协程和 SmallRye Mutiny 的支持,但您可以 也要注册其他人。spring-doc.cn

对于功能性 API(如 [webflux-fn]、 和 等),一般规则 对于 WebFlux,API 适用 — 并作为返回值和 Reactive Streams 作为输入。当 ,无论是自定义的还是来自另一个响应式库的, ,则只能将其视为语义未知 (0..N) 的流。但是,如果 语义是已知的,你可以用 OR 代替它 传递原始的 .WebClientFluxMonoPublisherPublisherFluxMono.from(Publisher)Publisherspring-doc.cn

例如,给定 a 不是 ,则 Jackson JSON 消息编写器 需要多个值。如果媒体类型意味着无限流(例如, ),则会单独写入和刷新值。否则 值缓冲到列表中并呈现为 JSON 数组。PublisherMonoapplication/json+streamspring-doc.cn