spring-210730-03---Spring5新功能-Webflux-响应式编程-Reactor实现&操作符

spring-210730-03—Spring5新功能-Webflux-响应式编程-Reactor实现&操作符


Reactor有两个核心类,Mono和Flux

响应式编程操作中,Reactor是满足Reactive规范框架。

Reactor有两个核心类,Mono和Flux,这两个类实现了接口Publisher,提供了丰富的操作符。
	1) Flux对象实现发布者,返回N个元素,
	2) Mono对象实现发布者,返回0或者1个元素。
Flux和Mono都是数据流的发布者,使用Flux和Mono都可以发出三种数据信号:
	1) 元素值,
	2) 错误信号,终止数据流的同时把错误信息传递给订阅者,
	3) 完成信号,
	错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了。
三种信号的特点:
	1) 错误信号和完成信都是终止信号,不能共存
	2) 如果没有发送任何元素值,而是直接发送错误信号或者完成信号,表示是空数据流
	3) 如果没有错误信号,没有完成信号,表示是无限数据流

操作符

对数据进行一道道操作,称为操作符,比如工厂流水线等
两个常见操作符:
	1) map
		元素映射为新元素
		
	2) flatMap
		元素映射为流
		做法:把每个元素先转换为流,再把转换之后的多个流合成一个大的流

Reactor演示

引入依赖

需要先引入这个依赖↓↓↓↓

		<dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
            <version>3.3.9.RELEASE</version>
        </dependency>

TestReactor.java

package com.bgy.spring.reactorjava8;

import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class TestReactor {

    public static void main(String[] args) {

        /*
            调用just或者其他方法只是声明数据流,数据流并没有发出,
            只有进行订阅之后才会触发数据流,不订阅什么都不会发生。
            所以要调用订阅方法 subscribe()
         */
        // just方法直接声明
        Flux.just(1,2,3,4).subscribe(System.out::println);
        Mono.just(1).subscribe(System.out::println);


        //其他方法声明
        Integer[] array = {1,2,3,4};
        Flux.fromArray(array);

        List<Integer> list = Arrays.asList(array);
        Flux.fromIterable(list);

        Stream<Integer> stream = list.stream();
        Flux.fromStream(stream);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值