spring-boot - 为什么 Spring Boot 有两种不同的 ReactiveX 实现?
问题描述
Spring Boot 有两个不同的依赖项,每个依赖项都实现了相同的 API:Project Reactor和RxJava 2。您可以在此处验证 spring boot 中的依赖关系。那么为什么要重复呢?
在实践中是否有理由使用另一种?
解决方案
请记住,这不是直接且强制的依赖项,而是一个 BOM,它管理哪些版本是首选的,并且适用于这个版本的 Spring Boot。如果您不使用 RxJava2(或明确使用的 Spring 项目),您将不会引入依赖项。如果你这样做了,但你没有指定一个版本,你会从那个链接中提取一个。
现在,你为什么RxJava2
要Reactor
问?Spring Framework 的WebFlux
堆栈构建在 Reactor 之上,但 Spring 一直是关于选择的。由于 RxJava2 和 Reactor 都实现了Reactive Streams
规范,它们是可互操作的。因此,如果您希望您的用户代码处理 RxJava2 类型(甚至是 RxJava 1 类型),Spring 将为您进行转换。
管道仍然使用 Reactor 完成,因此它也是您使用的首选实现,但这取决于您。
推荐阅读
- excel - 如何从用户窗体的文本框中输入验证消息?
- hyperledger-fabric - 运行 $ sudo npm install 后出错,错误是 - grpc@1.10.1 安装脚本失败
- python - 如何从 Jupyter Pyspark 笔记本访问 MinIO 存储桶?
- python - s3.upload_fileobj 给出错误需要类似字节的对象
- android - Android Studio 重新格式化代码快捷方式不起作用
- c# - 通过 Azure AD 应用程序代理从客户端发出的请求中缺少授权标头
- python - 如何使用 selenium 和 python 从下拉列表中获取值列表
- groovy - jmeter中的groovy响应断言脚本问题
- javascript - 等待子函数执行后再返回
- docker - kubectl 中的 docker pull 等效项