一个例子搞懂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个


	
【推荐】 spring-cloud-gateway 自定义lb实现
【推荐】 11月18日股市前瞻
【推荐】 Facebook、微信团队、Twitter、微软开源软件列表一览
【推荐】 淘宝大秒系统设计详解|许令波|文末有福利