在这篇简短的教程中,我们将探索 Spring 5 WebFlux 中的 Mono 对象的各种监听器。我们将比较 doOnNext() 和 doOnSuccess() 方法,并发现尽管它们相似,但对于空的 Mono,它们的行为是不同的。
Mono 的 doOnNext() 允许我们附加一个监听器,当数据被发出时会被触发。 在本文的代码示例中,我们将使用 PaymentService 类。在这种情况下,我们只有在 paymentMono 发出数据时,使用 doOnNext() 调用 processPayment 方法:
@Test
void givenAPaymentMono_whenCallingServiceOnNext_thenCallServiceWithPayment() {
Payment paymentOf100 = new Payment(100);
Mono````<Payment>```` paymentMono = Mono.just(paymentOf100);
paymentMono.doOnNext(paymentService::processPayment)
.block();
verify(paymentService).processPayment(paymentOf100);
}
大约 2 分钟