基于注释的Delayer

时间:2017-03-17 17:16:04

标签: spring-integration

我正在研究我的第一个Spring集成用例。我想在纯Spring Java Config中做所有事情(没有XML配置和DSL,只有注释)。到目前为止,尽管缺乏文档和示例,一切都还行。

但现在我遇到了延迟问题。没有明显的注释,文档中没有关于在DSL或注释中配置delayer的内容。是否仅在XML配置中支持delayer?

1 个答案:

答案 0 :(得分:3)

关于此事的Java DSL应该是显而易见的:

@Bean
public IntegrationFlow delayFlow() {
    return IntegrationFlows.from("delayInput")
            .delay("delayer", d -> d
                    .delayExpression("200")
                    .advice(this.delayedAdvice)
                    .messageStore(messageStore()))
            .get();
}

原始Java&注释配置注意 Programming Tips and Tricks

主要观点是:

  

如果您已熟悉Spring Integration XML配置,从版本4.3开始,我们在XSD元素定义中提供了指针的描述,其中目标类用于为适配器或网关生成bean。

所以,转到我们看到的<delayer> XSD:

<xsd:documentation>
            Defines a Consumer Endpoint for the 'org.springframework.integration.handler.DelayHandler'
            that passes a Message to the output-channel after a delay.

如果有一个大约sendChatMessageHandler() @Bean的样本,我们可以为DelayHandler做同样的事情:

@Bean
@ServiceActivator(inputChannel = "delayInput")
public MessageHandler delayMessageHandler() {
    DelayHandler delayHandler = new DelayHandler("myGroup");
    ...
    return delayHandler;
}

注意:版本5.0的最新文档将包含如何通过Annotations和Java DSL配置delayer的示例。