Spring集成 - 聚合分散消息

时间:2013-01-04 15:41:30

标签: java spring file spring-integration

我有一个Spring Integration应用程序,可将传入的文件放到频道上。从那里我希望能够将相同的文件发送到两个不同的处理管道(一个归档到S3,另一个解析内容),然后有一个下游组件可以识别何时成功处理两个,从而删除实际的本地文件。

语义就像我需要一个Splitter / Aggregator,但不是拆分消息我需要复制它。

有没有办法用可用的组件实现这一点,还是需要一些自定义类?

1 个答案:

答案 0 :(得分:3)

是的,<publish-subscribe-channel/>apply-sequence="true")与分割器的工作方式类似 - 但是频道的两个订阅者都将获得SAME File对象。默认情况下,两个分支将以串行方式执行,但如果要并行处理,则可以引入ExecutorChannel。

如果您希望每个订阅者获得不同的File对象,您可以添加转换器...

<transformer ... expression="new java.io.File(payload.absolutePath)" />