【问题标题】:Annotation based Delayer基于注释的延迟器
【发布时间】:2017-08-09 08:48:02
【问题描述】:

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

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

【问题讨论】:

    标签: spring-integration


    【解决方案1】:

    关于此事的 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 版本的最新文档将包含如何通过注释和 Java DSL 配置 delayer 的示例。

    【讨论】:

    • 我在 5.0 版的最新文档中找不到,示例如何通过注释和 Java DSL 配置延迟器
    • 同意。就是没有人。请就此事提出JIRA。我们按需修复 Java 配置文档。谢谢
    • 我是already there,从March开始。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多