在我们的应用程序中,我们使用kafka并具有像这样的spring cloud输入流
@Component
public interface SomeChannel {
@Input(ChannelNames.SOME_INPUT)
MessageChannel someInput();
}
现在,同事建议添加一个实现preSend方法的ChannelInterceptor实现。但是,在我们的代码库中,似乎没有人在此输入通道上调用MessageChannel.send(Message<?> message)
,但是我们确实有一个StreamListener,如下所示]
@StreamListener(ChannelNames.SOME_INPUT)
public void process(final String strMessage) throws Exception {
我的问题我认为preSend将永远不会被调用。我是否在这里丢失了某些内容,并且它仍可能会被调用(也许通过内部或以其他方式通过MessageChannel.send(Message<?> message)
调用的StreamListener代码)?
是;活页夹将传入的消息发送到该通道。