Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring5和反应式编程_Java_Spring_Reactive Programming - Fatal编程技术网

Java Spring5和反应式编程

Java Spring5和反应式编程,java,spring,reactive-programming,Java,Spring,Reactive Programming,我注意到Spring框架在Spring5.0版本中引入了反应堆栈,它是基于和构建的。我很想知道,如果有人知道这些信息,为什么他们会选择project reactor,而这似乎是一个更好的选择(广泛使用,伟大的社区,更长的历史,通常意味着更少的bug,实现反应流规范,等等)。reactor已经运行了几年了——它不像你说的那么年轻。它也符合反应流规范AFAIK,因此没有区别 话虽如此,这里使用反应堆可能有政治和技术两方面的原因 从政治上讲,Spring和Reactor都是关键项目,而RxJava则不

我注意到Spring框架在Spring5.0版本中引入了反应堆栈,它是基于和构建的。我很想知道,如果有人知道这些信息,为什么他们会选择project reactor,而这似乎是一个更好的选择(广泛使用,伟大的社区,更长的历史,通常意味着更少的bug,实现反应流规范,等等)。

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

话虽如此,这里使用反应堆可能有政治和技术两方面的原因

从政治上讲,Spring和Reactor都是关键项目,而RxJava则不是

然而,从技术上讲,RxJava的最大优点和缺点,取决于您如何看待它,是它支持比Java8更旧的版本。如果您想以Java 6为目标,这很好,但是如果您只以Java 8为目标,那么它会带来一些开销和重复(因为这意味着RxJava不能使用任何新的内置Java 8类,例如
可选
函数
,等等)


另一方面,Reactor仅限于Java8+,因此它可以充分利用新的Java8本机类。由于Spring5.0也是仅限于Java8+的,这意味着Reactor在这方面具有优势。

基本上所有的反应式API都是基于reactivestreams构建的。这是一个非常小的软件包,它简单地标准化了如何使用流连接发布者和订阅者。同意@MichaelBerry的观点——也就是说,最本质的区别是Java版本。其次,尽管反应堆可以不用弹簧使用,但它与弹簧的集成非常好。如果您使用的是Spring,那么选择提供的API是有意义的,因为它将继续受到支持,可能会带来更好的性能。此外,由于该反应堆得到了关键技术的支持,它有着非常光明的前景。