我正在研究我的第一个Spring集成用例。我想在纯Spring Java Config中做所有事情(没有XML配置和DSL,只有注释)。到目前为止,尽管缺乏文档和示例,一切都还行。
但现在我遇到了延迟问题。没有明显的注释,文档中没有关于在DSL或注释中配置delayer的内容。是否仅在XML配置中支持delayer?
答案 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
的示例。