Spring integration AggregatorFactoryBean-设置空关联策略

Spring integration AggregatorFactoryBean-设置空关联策略,spring-integration,Spring Integration,如何配置AggregatorFactoryBean对所有消息进行分组,而不使用CorrelationStrategy(使用空字符串尝试)或对所有消息进行分组的策略 我没有公共字段或标题 因为我不关心群组,而是关心大量的信息 我找到了唯一脏的解决方案来传递返回空字符串的correlationStrategy方法 AggregatorFactoryBean aggregatorFactoryBean = new AggregatorFactoryBean(); aggregato

如何配置
AggregatorFactoryBean
对所有消息进行分组,而不使用CorrelationStrategy(使用空字符串尝试)或对所有消息进行分组的策略

我没有公共字段或标题

因为我不关心群组,而是关心大量的信息

我找到了唯一脏的解决方案来传递返回空字符串的correlationStrategy方法

   AggregatorFactoryBean aggregatorFactoryBean = new AggregatorFactoryBean();
   
   aggregatorFactoryBean.setMethodName("aggregatingMethod");
   aggregatorFactoryBean.setCorrelationStrategy(new MethodInvokingCorrelationStrategy(aggregator,"correlateBy"));
   //not working->   // aggregatorFactoryBean.setCorrelationStrategy(new ExpressionEvaluatingCorrelationStrategy(""));
    aggregatorFactoryBean.setReleaseStrategy(new MessageCountReleaseStrategy(10));

   aggregatorFactoryBean.setCorrelationStrategy(new MethodInvokingCorrelationStrategy(aggregator,"correlateBy"));


    class MyAggregator {
        public  List<Item> aggregatingMethod(List<List<Item>> items) {
           return ...
        }

      public String correlateBy(Item item) {
        return "";
      }
    }
AggregatorFactoryBean AggregatorFactoryBean=新的AggregatorFactoryBean();
aggregatorFactoryBean.setMethodName(“aggregatingMethod”);
SetCorrelationsStrategy(新方法调用CorrelationsStrategy(聚合器,“correlateBy”));
//不工作->//aggregatorFactoryBean.SetCorrelationsStrategy(新表达式EvaluationCorrelationsStrategy(“”));
setReleaseStrategy(新MessageCountReleaseStrategy(10));
SetCorrelationsStrategy(新方法调用CorrelationsStrategy(聚合器,“correlateBy”));
类聚合器{
公共列表聚合方法(列表项){
返回。。。
}
公共字符串相关项(项){
返回“”;
}
}

相关策略
是一个
@功能界面
,因此有一个简单的lambda和一个常数就足以产生:

aggregatorFactoryBean.setCorrelationStrategy(message -> 1);
它会将所有消息聚合到同一个组中


另一方面,如果您谈论的只是缓冲消息,而不是以某种方式关联消息并单独处理,那么您可能最好考虑使用真正存储发送消息的
QueueChannel
。当您需要获取当前缓冲区进行处理时,您可以调用它的
clear()
,它会为您的a
列表返回。我想控制组中消息的数量以及释放前的超时时间。也许将来我会根据一些标准进行关联。谢谢