Spring 为什么3号反应堆需要单核反应堆?
反应器3有两种主要数据类型,它们都是反应流发布器Spring 为什么3号反应堆需要单核反应堆?,spring,reactive-programming,project-reactor,spring-webflux,reactive-streams,Spring,Reactive Programming,Project Reactor,Spring Webflux,Reactive Streams,反应器3有两种主要数据类型,它们都是反应流发布器 reactor.core.publisher.Mono reactor.core.publisher.Flux 我理解Mono是由0或1个元素组成的流与Flux是由0或N个元素组成的流之间的区别 既然Mono和Flush都在实现org.reactivestreams.Publisher,为什么我们需要这两种类型?为什么不把Flux用于所有事情呢?想想在非反应性世界中会发生什么:我们可以决定让所有函数返回List,即使我们知道它们只返回一个元素
reactor.core.publisher.Mono
reactor.core.publisher.Flux
既然Mono和Flush都在实现org.reactivestreams.Publisher,为什么我们需要这两种类型?为什么不把Flux用于所有事情呢?想想在非反应性世界中会发生什么:我们可以决定让所有函数返回
List
,即使我们知道它们只返回一个元素。例如:
public List<T> findAll() <-- looks ok
public List<T> findFirst() <-- seems strange?
public T findFirst() <-- better now?
当然,我们可以像使用列表一样使用
通量
,但更方便的是能够区分有多个项目还是只有一个项目。想想在非反应性世界中会发生什么:我们可以决定让所有函数返回列表
,即使我们知道它们只返回一个元素。例如:
public List<T> findAll() <-- looks ok
public List<T> findFirst() <-- seems strange?
public T findFirst() <-- better now?
当然,我们可以使用
Flux
,就像我们可以使用List
一样,但是,当有多个项目或只有一个项目时,能够进行区分更为方便。对于开发人员来说,知道期望从发布者那里得到什么行为只是语义上的问题。对于开发人员来说,知道期望从发布者那里得到什么行为只是语义上的问题。对于