2017-03-17 82 views
1

我正在研究我的第一個彈簧集成用例。我想在純粹的Spring Java Config中完成所有的工作(沒有XML配置和DSL,只有註釋)。到目前爲止,儘管缺少文檔和示例,但一切都還好。基於註釋的延遲器

但是現在我遇到了延遲問題。沒有明顯的註釋,文檔中沒有關於在DSL或註釋中配置延遲器的信息。延遲器是否僅支持XML配置?對此事

回答

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集成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的示例。

+0

我在5.0版的最新文檔中找不到,示例如何通過註釋和Java DSL – Sotona

+0

配置延遲器。沒有人。請就此事提出JIRA。我們根據需要修復了針對Java配置的文檔。謝謝 –

+2

[已經有](https://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html#delayer-namespace),自[March](https:// github.com/spring-projects/spring-integration/commit/c85b9cbb20d9973198ccfcc0ca397ad452ced784#diff-3af5f94f013253ce5b7f891dbef27fa9)。 –