一个例子搞懂Reactor的Flux和Mono
时间:2022-06-27
Reactor是一个异步的流操作框架,基于发布-订阅者模式,首先需要引入Reactor依赖包
<dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> <version>3.4.12</version> </dependency>测试代码如下:
package test; import reactor.core.publisher.Flux; public class ReactorTest { public static void main(String[] args) { Flux<Integer> integerFlux = Flux.just(1, 2, 3, 4);//整型 //subscribe():订阅Flux序列,只有进行订阅后才回触发数据流,不订阅就什么都不会发生 integerFlux.doOnComplete(()->System.out.println("compleate")); integerFlux.subscribe((s)->{System.out.println(s);}); integerFlux.next().subscribe(s->{System.out.println("next:"+s);}); integerFlux.doOnNext(s->System.out.println("doOnNext:"+s)).subscribe(System.out::println); } }
运行后输出如下:
1 2 3 4 next:1 doOnNext:1 1 doOnNext:2 2 doOnNext:3 3 doOnNext:4 4g搞懂了Flux之后,Mono就非常简单了,Mono是只能存放0-1个元素的流,而Flux是0-N个