Spring integration 为每个数据存储创建聚合器实例

Spring integration 为每个数据存储创建聚合器实例,spring-integration,Spring Integration,是否可以为每个新的唯一关联id提供一个spring聚合器实例?会为每个唯一的关联id创建一个MessageStore,但我想知道是否也可以为aggregator:MessageStore创建一个1:1的实例 我希望aggregator类中的实例值基于我从传入消息中提取的内容,这有助于我确定每个MessageStore的发布策略 更新:术语已更正 每个correlationId没有单独的“数据存储” 聚合器使用默认内存中的MessageGroupStore,但可以是多个持久MessageGroup

是否可以为每个新的唯一关联id提供一个spring聚合器实例?会为每个唯一的关联id创建一个MessageStore,但我想知道是否也可以为aggregator:MessageStore创建一个1:1的实例

我希望aggregator类中的实例值基于我从传入消息中提取的内容,这有助于我确定每个MessageStore的发布策略

更新:术语已更正

每个correlationId没有单独的“数据存储”

聚合器使用默认内存中的
MessageGroupStore
,但可以是多个持久
MessageGroupStores
之一

每个correlationId都会获得一个新的
MessageGroup
,该组存储在
MessageGroupStore

对于每个组,不能有POJO聚合器类的新实例;如果您有需要管理的状态,则需要使用关联策略键入的
映射来保存该状态,而不是简单的字段

可以保证,对于特定组,只有一个线程会同时调用POJO


您可能需要更改发布策略,以获取
列表
>为每个唯一的相关id创建一个唯一的数据存储
——这是不正确的;请更详细地解释您的问题。在带注释的聚合器java类中,@ReleaseStrategy传递了一个与相关id相关的唯一列表。我将方法签名上的相关列表项等同于每个列表的唯一数据存储。因此,我假设所有列表项都保存在相同的内存数据存储中(默认情况下)。如果每个唯一的关联id可以有一个聚合器实例,那么主要问题仍然是一样的。这更有意义吗?如果有,我会更新。谢谢,虽然术语是错误的,但它帮助我理解了您的意思)。看到我的答案了,很抱歉。当我应该键入MessageGroup和MessageGroupStore时,我的脑海中有了
数据存储
硬连线。在我的场景中,使用列表字符串是可以的。我的主要问题源于这样一个事实:我通过从传入消息中提取相关id(xml标记值)来确定发布策略,该值用于指向具有预期消息数的目录文件系统位置。每个文件1个。对于2个不同的并发MessageStore,确定发布的预期消息数可能不同。我只是想看看是否可以避免每次都解组邮件,而只在每个MessageStore中执行一次。谢谢你的回答。