跳到主要内容
版本:7.0.2

MessageChannelSpec.wireTap()

DeepSeek V3 中英对照 MessageChannelSpec.wireTap() MessageChannelSpec.wireTap()

Spring Integration 包含一个 .wireTap() 流式 API MessageChannelSpec 构建器。以下示例展示了如何使用 wireTap 方法来记录输入:

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

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

如果 MessageChannelInterceptableChannel 的实例,则 log()wireTap()intercept() 操作符将应用于当前的 MessageChannel。否则,系统会为当前配置的端点注入一个中间的 DirectChannel 到流程中。在以下示例中,WireTap 拦截器被直接添加到 myChannel,因为 DirectChannel 实现了 InterceptableChannel

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

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

当当前的 MessageChannel 未实现 InterceptableChannel 时,系统会向 IntegrationFlow 中注入一个隐式的 DirectChannelBridgeHandler,并将 WireTap 添加到此新的 DirectChannel 上。以下示例未声明任何通道:

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

在前面的示例中(以及任何未声明通道的情况),一个隐式的 DirectChannel 会被注入到 IntegrationFlow 的当前位置,并用作当前配置的 ServiceActivatingHandler(来自 .handle())的输出通道。