为什么Spring Boot有两种不同的ReactiveX实现?

时间:2019-01-15 17:01:09

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

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

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

1 个答案:

答案 0 :(得分:1)

请记住,这不是直接的和强制性的依赖关系,而是 BOM,它确定了哪个版本是首选版本,并且对于此版本的Spring Boot来说效果很好。如果您不使用RxJava2(或明确使用的RxJava项目),则不会引入依赖项。如果这样做,但未指定版本,则将从该链接中提取一个版本。

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

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