【问题标题】:Why does Spring Boot have two different ReactiveX implementations?为什么 Spring Boot 有两种不同的 ReactiveX 实现?
【发布时间】:2019-06-09 17:50:10
【问题描述】:

Spring Boot 有两个不同的依赖项,每个依赖项都实现了 the same APIProject ReactorRxJava 2。您可以在 spring boot here 中验证依赖关系。那么为什么要重复呢?

在实践中是否有理由使用其中一种?

【问题讨论】:

  • note Reactor 没有实现 ReactiveX API,但在 API 设计(至少与 Flowable 相比)和实现设计上都非常接近 RxJava2。两者都遵循Reactive Streams specification

标签: spring-boot rx-java2 project-reactor


【解决方案1】:

请记住,这不是一个直接且强制的依赖项,而是一个 BOM,用于管理哪些版本是首选的并且适用于这个版本的 Spring Boot。如果您不使用 RxJava2(或明确使用的 Spring 项目),您将不会引入依赖项。如果你这样做了,但你没有指定一个版本,你会从那个链接中提取一个。

现在,为什么要问 RxJava2Reactor Spring Framework 的 WebFlux 堆栈构建在 Reactor 之上,但 Spring 一直是选择 .由于 RxJava2 和 Reactor 都实现了Reactive Streams specification,因此它们是可互操作的。因此,如果您希望您的用户代码处理 RxJava2 类型(甚至是 RxJava 1 类型),Spring 将为您进行转换。

管道仍然使用 Reactor 完成,因此它也是您使用的首选实现,但这取决于您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-02
    • 2023-04-11
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 2018-02-03
    相关资源
    最近更新 更多