- 添加依赖
<dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> </dependency>
- 使用Lambda编写单元测试
public class HelloReactorTest { @Test public void test1() throws IOException { // onComplete在数据完整发送完毕后才会调用,如果只传部分数据将不会被回调 Flux.just("A","B","C") // 发布A -> B -> C .map(value -> "+" + value) .subscribe( System.out::println, // 数据消费 = onNext(T) System.out::println, // 异常处理 = onError(Throwable) () -> System.out.println("完成操作"), // 完成回调 = onComplete() subscription ->{ // 背压操作 = onSubscribe(Subscription) // 这里需要主动请求数据,否则无法接收到数据 subscription.request(1); subscription.cancel(); } ) ; } }
- 使用Java类编写单元测试
public class HelloReactorTest { @Test public void test2() throws IOException { // onComplete在数据完整发送完毕后才会调用,如果只传部分数据将不会被回调 Flux.just("A","B","C") // 发布A -> B -> C .map(value -> "+" + value) .subscribe(new Subscriber<String>() { private Subscription subscription ; @Override public void onSubscribe(Subscription s) { this.subscription = s; // 这里需要主动请求数据,否则无法接收到数据 this.subscription.request(1); } @Override public void onNext(String s) { System.out.println(s); // 这里需要主动请求数据,否则无法接收到数据 this.subscription.request(1); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onComplete() { System.out.println("完成操作"); } }) ; } }
Spring Reactor学习笔记
最新推荐文章于 2024-06-23 21:06:15 发布
这篇博客介绍了如何使用Reactor库在Java中编写单元测试,通过Lambda表达式和Java类两种方式展示了订阅过程,包括数据消费、异常处理、完成回调和背压操作。示例代码中详细解释了每个方法的作用,如onNext、onError和onComplete,强调了在实际测试中主动请求数据的重要性。
摘要由CSDN通过智能技术生成