Spring Boot 2 M4 中的 Reactor 更改

Reactor changes in Spring Boot 2 M4

我已经从 Spring Boot 2.0.0.M3 更新到 2.0.0.M4,这将 Reactor 从 3.1.0.M3 更新到 3.1.0.RC1。这导致我的代码在许多地方中断。 Mono.and() 现在 returns Mono<Void>,之前它返回 Mono<Tuple> Mono.when()也是如此 以下代码使用旧版本编译,但不使用新版本

    Mono<String> m1 = Mono.just("A");
    Mono<String> m2 = Mono.just("B");

    Mono<String> andResult = m1.and(m2).map(t -> t.getT1() + t.getT2());
    Mono<String> whenResult = Mono.when(m1, m2).map(t -> t.getT1() + t.getT2());

这应该如何工作有任何变化吗?

我切换到 Mono.zip(...):

mono1.and(mono2).map(...)

=>

Mono.zip(mono1, mono2).map(...)
产生 Tuple

whenand 已替换为 zip/zipWith,它们在 Flux 中完全等价API,为了对齐APIs。仅在 Mono 中发现的剩余 whenand 方法现在纯粹是关于组合完成信号,丢弃 onNext(因此它们 return 和 Mono<Void>)