拆解源码之前,可以先参阅入门文章 Project Reactor 核心原理解析 及Reactive响应式流入门。
实例:
Flux.just("tom", "jack", "allen")
.filter(s -> s.length() > 3)
.map(s -> s.concat("@qq.com"))
.subscribe(System.out::println);
1. 通过静态方法Flux.just生成一个FluxArray对象,FluxArray封装一个array数组。这里重点注意下class FluxArray<T> extends Flux<T>,可以理解为Publisher的源头。
2. 通过成员方法FluxArray.filter 生成一个FluxFilter,FluxFilter的构造方法接受两个参数,一个是source,即链接编程的前一个节点FluxArray对象,另一个参数是Predicate。