此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.3spring-doc.cadn.net.cn

MessageChannelSpec.wireTap()

Spring 集成包括一个.wireTap()流畅的 APIMessageChannelSpec建设者。 以下示例演示如何使用wireTap记录输入的方法:spring-doc.cadn.net.cn

@Bean
public QueueChannelSpec myChannel() {
    return MessageChannels.queue()
            .wireTap("loggingFlow.input");
}

@Bean
public IntegrationFlow loggingFlow() {
    return f -> f.log();
}

如果MessageChannelInterceptableChannellog(),wireTap()intercept()运算符应用于当前MessageChannel. 否则,中间DirectChannel注入到当前配置的终端节点的流中。 在以下示例中,WireTapinterceptor 被添加到myChannel直接,因为DirectChannel实现InterceptableChannel:spring-doc.cadn.net.cn

@Bean
MessageChannel myChannel() {
    return new DirectChannel();
}

...
    .channel(myChannel())
    .log()
}

当当前MessageChannel不实现InterceptableChannel,则隐式DirectChannelBridgeHandler注入到IntegrationFlowWireTap已添加到此新DirectChannel. 以下示例没有任何 channel 声明:spring-doc.cadn.net.cn

.handle(...)
.log()
}

在前面的示例中(以及任何时候未声明 channel),隐式的DirectChannel被注入到IntegrationFlow并用作当前配置的ServiceActivatingHandler(来自.handle(),如前所述)。spring-doc.cadn.net.cn