如需使用最新稳定版本,请使用 Spring Integration 7.0.4spring-doc.cadn.net.cn

响应式通知

从版本 5.3 开始,对于产生 Mono 响应的请求消息处理器,可以使用 ReactiveRequestHandlerAdvice。 为此需要提供一个 BiFunction<Message<?>, Mono<?>, Publisher<?>>,它会在被拦截的 handleRequestMessage() 方法实现产生的响应上通过 Mono.transform() 操作符被调用。 通常,当我们希望通过 timeout()retry() 等类似的支持操作符来控制网络波动时,就需要这种 Mono 自定义功能。 例如,当通过 WebFlux 客户端发送 HTTP 请求时,我们可以使用以下配置,使等待响应的时间不超过 5 秒:spring-doc.cadn.net.cn

.handle(WebFlux.outboundGateway("https://somehost/"),
                       e -> e.customizeMonoReply((message, mono) -> mono.timeout(Duration.ofSeconds(5))));

message 参数是消息处理器的请求消息,可用于确定请求范围的属性。 mono 参数是该消息处理器的 handleRequestMessage() 方法实现的执行结果。 也可以从该函数中调用嵌套的 Mono.transform(),例如应用 响应式熔断器spring-doc.cadn.net.cn