spring-webflux - 单核细胞增多症> 与 Flux 的区别在 Spring webflux 中
问题描述
我的理解是Mono<List<T>>
同步Flux<T>
和 Flux 不能是一个休息 api 响应。
我对吗?
如果不是,那么 Flux 之间有什么区别Mono<List<T>>
,Flux<T>
或者在某些地方可能是 rest api 响应?
解决方案
- 作为返回类型,
Mono<List<T>>
意味着您将一次异步获得完整的T
元素列表。 Flux<T>
意味着您将获得零到多个T
元素,可能会一个一个地出现。
如果您从 HTTP 客户端获取此类返回类型,例如WebClient
,Mono<List<T>>
并且Flux<T>
从运行时的角度来看可能或多或少等效,如果返回Content-Type
的是"application/json"
. 在这种情况下,解码器将一次性反序列化响应。唯一不同的是,Flux<T>
提供了更多有趣的运算符,您可以随时collectList
退回到Mono<List>
.
另一方面,Content-Type
例如,如果返回的是流媒体,"application/stream+json"
那么这肯定会产生影响,因为您将在元素到来时一个接一个地获取它们。事实上,如果返回的流是无限的,选择Flux<T>
是非常重要的,因为另一个永远不会完成。
推荐阅读
- sql - 需要以下格式的正确输出
- java - 使用计时器依次显示一组 JButtons [JAVA SWING]
- sql - 使用 CASE TERADATA 插入空表
- git-bash - Windows 上的 git-bash 中的 push、pull 等命令会无限期冻结
- json - 针对 XML 或 XSD 验证转换后的 JSON
- dart - 如果我在 if 语句中使用 'is' 关键字,Dart 如何自动向上转换
- python - 如何通过 Tuning 改进深度学习
- javascript - 如何识别和响应 BTTV/FFZ/Twitch 表情?
- python - 通过 for 循环将 str 和 int 连接到调用列表
- binding - Jaxb xjc 绑定,按规则重命名包