我是Spring Integration的新手,想知道Spring Integration中是否有一个组件可以帮助我加入2个频道的结果。我知道答案是聚合器,但是我不希望将消息合并为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();
}
}