首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-cloud-stream如何配置GlobalChannelInterceptor?

spring-cloud-stream如何配置GlobalChannelInterceptor?
EN

Stack Overflow用户
提问于 2019-06-01 00:09:46
回答 1查看 1K关注 0票数 1

我有一个使用kafka绑定的spring-cloud-stream worker

代码语言:javascript
复制
@Slf4j
@EnableBinding(KafkaStreamsProcessor.class)
@RequiredArgsConstructor
public class SomeWorker {

    @StreamListener(Sink.INPUT)
    @SendTo(Source.OUTPUT)
    public KStream<?, Obj> process(KStream<?, Obj> objStream) {
        return objStream.something();
    }
}

和一个全局拦截器

代码语言:javascript
复制
@Component
@Slf4j
@GlobalChannelInterceptor
public class StreamInterceptor implements ChannelInterceptor {

    @Override
    public Message<?> preSend(Message<?> msg, MessageChannel mc) {
        log.info("In preSend");
        return msg;
    }

    @Override
    public void postSend(Message<?> msg, MessageChannel mc, boolean bln) {
        log.info("In postSend");
    }

    @Override
    public void afterSendCompletion(Message<?> msg, MessageChannel mc, boolean bln, Exception excptn) {
        log.info("In afterSendCompletion");
    }

    @Override
    public boolean preReceive(MessageChannel mc) {
        log.info("In preReceive");
        return true;
    }

    @Override
    public Message<?> postReceive(Message<?> msg, MessageChannel mc) {
        log.info("In postReceive");
        return msg;
    }

}

在接收到流上的任何消息时,不会调用GlobalChannelInterceptor。

我错过了什么?

ps:我正在遵循这个测试https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/interceptor/BoundChannelsInterceptedTest.java#L67

EN

回答 1

Stack Overflow用户

发布于 2019-06-01 01:08:00

Kafka Streams绑定器不是基于MessageChannel的,因此没有通道可供拦截。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56398499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档