【问题标题】:Spring Integration - Joining messages from 2 channelsSpring Integration - 加入来自 2 个频道的消息
【发布时间】:2015-02-15 04:49:06
【问题描述】:

我是 Spring Integration 的新手,想知道 Spring Integration 中是否存在一个组件,它可以帮助我加入 2 个通道的结果。我知道答案是聚合器,但是我不希望将消息合并为 1 条消息,但是当来自两个通道的消息都到达时,它们应该流向下游组件。这是一种循环障碍案例。

谢谢你 阿迪

【问题讨论】:

    标签: spring-integration


    【解决方案1】:

    aggregator 的默认行为是将已发布的消息组聚合成一条消息,并在负载中包含一个集合。

    您可以在聚合器之后添加splitter 以再次破坏它们。

    但是,如果聚合器输出 MessageGroupProcessor 生成 Collection<Message<?>,则每条消息都会一个接一个地发布。

    您无法使用 XML 配置连接自定义 MessageGroupProcessor,但您可以在 Java 中进行配置...

    AggregatingMessageHandler aggregator = new AggregatingMessageHandler(new FooProcessor());
    ...
    
    
    private class FooProcessor implements MessageGroupProcessor {
    
        @Override
        public Object processMessageGroup(MessageGroup group) {
            return group.getMessages();
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2019-05-19
      • 1970-01-01
      相关资源
      最近更新 更多