Spring 5 和响应式编程

fre*_*dev 2 java spring reactive-programming

我\xe2\x80\x99注意到Spring框架在spring 5.0版本中引入了反应式堆栈,它是基于项目反应器反应式流规范构建的。我\xe2\x80\x99m很想知道,如果有人有这些信息,为什么他们选择项目反应堆,而RxJava似乎是一个更好的选择(广泛使用,伟大的社区,更长的历史通常意味着更少的错误,实现反应流规范, ETC。)

\n

Mic*_*rry 5

Reactor 已经运行了几年了——它并不像你所说的那么年轻。它也符合反应流规范 AFAIK,所以没有区别。

话虽这么说,这里使用 Reactor 可能有政治​​和技术原因。

从政治角度来说,Spring 和 Reactor 都是关键项目,而 RxJava 则不是。

然而,从技术上讲,RxJava 的巨大优势和劣势(具体取决于您如何看待它)是,它支持比 Java 8 更旧的版本。如果您想以 Java 6 为目标,那么这很好,但如果您只以 Java 8 为目标,那么它就来了有一些开销和重复(因为这意味着 RxJava 不能使用任何新的内置 Java 8 类,例如OptionalFunction等)。

另一方面,Reactor 仅支持 Java 8+,因此它可以充分利用新的 Java 8 原生类。由于 Spring 5.0 也仅支持 Java 8+,这意味着 Reactor 在这方面具有优势。