Spring Integration - 加入来自2个频道的消息

时间:2014-12-16 19:04:27

标签: spring-integration

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

谢谢 阿迪

1 个答案:

答案 0 :(得分:0)

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();
    }

}