首页 > 解决方案 > 为什么 Spring Boot 有两种不同的 ReactiveX 实现?

问题描述

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

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

标签: spring-bootrx-java2project-reactor

解决方案


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

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

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


推荐阅读