我如何使用注释在聚合器中设置mongodb messagestore

时间:2016-11-11 05:07:25

标签: spring spring-boot spring-integration

我正在尝试将聚合器添加到我的代码中。 我面临的几个问题。 1.如何仅使用注释设置消息库。 2.聚合器的设计是否有任何设计?基本上是一些图片解释相同。

@MessageEndpoint
public class Aggregator {


    @Aggregator(inputChannel = "abcCH",outputChannel = "reply",sendPartialResultsOnExpiry = "true")
    public APayload aggregatingMethod(List<APayload> items) {
        return items.get(0);
    }

    @ReleaseStrategy
    public boolean canRelease(List<Message<?>> messages){

        return messages.size()>2;
    }

    @CorrelationStrategy
    public String correlateBy(Message<AbcPayload> message) {
        return (String) message.getHeaders().get(RECEIVED_MESSAGE_KEY);
    }


}

1 个答案:

答案 0 :(得分:1)

Reference Manual我们有一个注释:

  

Aggregator组件的注释配置(@Aggregator和其他)仅涵盖简单的用例,其中大多数默认选项都足够。如果您需要使用注释配置更多地控制这些选项,请考虑对@Bean使用AggregatingMessageHandler定义,并使用@Bean标记其@ServiceActivator方法:

还有一点:

  

从版本4.2开始,AggregatorFactoryBean可用,以简化AggregatingMessageHandler的Java配置。

因此,实际上您应该将AggregatorFactoryBean配置为@Bean并配置@ServiceActivator(inputChannel = "abcCH",outputChannel = "reply")

还要考虑使用Spring Integration Java DSL来简化Java配置的生活。