gpt4 book ai didi

java - 将 io.projectreactor 版本从 2.0.x 升级到 3.0.4 - 使用 Spring 框架

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:36 26 4
gpt4 key购买 nike

我在尝试升级时遇到问题。

目前我使用的是 2.0.x 版本,特别是 -

reactor.bus
reactor.rx.Stream
reactor.rx.Streams
reactor.core.processor.RingBufferProcessor
reactor.fn.Consumer

我正在使用 maven,并且我有一个关于“projectreactor”的依赖 -

<groupId>io.projectreactor.spring</groupId>
<artifactId>reactor-spring-core</artifactId>

当升级到版本 3.0.4.RELEASE 时,为了继续使用我以前使用的所有东西,我需要显式导入 -

<groupId>io.projectreactor</groupId>
<artifactId>reactor-bus</artifactId>

<groupId>io.projectreactor</groupId>
<artifactId>reactor-stream</artifactId>

但我还是想念

reactor.core.processor.RingBufferProcessor
reactor.fn.Consumer

我不知道该怎么做。

最佳答案

reactor.rx.Stream -> reactor.core.publisher.Flux
reactor.rx.Streams -> reactor.core.publisher.Flux
reactor.rx.Promise -> reactor.core.publisher.Mono and reactor.core.publisher.MonoProcessor
reactor.core.processor.RingBufferProcessor -> reactor.core.publisher.TopicProcessor
reactor.fn.Consumer -> java.until.function.Consumer (Java 8)

没有新的 spring 模块,因为 spring 5 直接包含对这些新类型的 Reactor 支持。

至于 react 堆总线:按照设计,现在所有流路由(Flux/Mono 链)都是类型化的,因​​此动态路由还不是我们功能的一部分。仍然有其他类型的方式,例如:

ReplayProcessor<MyEvent> rp = ReplayProcessor.create();
Flux<MyEvent> interest1 = rp.filter(ev -> filterInterest1(ev));
Flux<MyEvent> interest2 = rp.filter(ev -> filterInterest2(ev));
Flux<MyEvent> interest1_2 = rp.filter(ev -> filterInterest1(ev) || filterInterest2(ev));

interest1.subscribe(doSomethingForInterest1);
interest2.subscribe(doSomethingForInterest2);
interest1_2.subscribe(doSomethingForInterest1_2);

rp.onNext(new MyEvent("interest1")); //subscriber 1 and 3 react
rp.onNext(new MyEvent("interest1")); //subscriber 1 and 3 react
rp.onNext(new MyEvent("interest2")); //subscriber 2 and 3 react
rp.onNext(new MyEvent("interest4")); // buffered until interest subscriber because ReplayProcessor

//shutdown/cleanup/close
rp.onComplete();

我在github上找到了这个似乎符合你的需求

关于java - 将 io.projectreactor 版本从 2.0.x 升级到 3.0.4 - 使用 Spring 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com