2017-03-17 5 views
1

私は最初の春の統合ユースケースに取り組んでいます。私は純粋なSpring Java Config(XML設定とDSLなし、アノテーションのみ)ですべてをやりたいと思います。これまでのところ、ドキュメンテーションとサンプルが不足していても、すべてがOKでしたAnnotation based Delayer

しかし、私は遅延の問題があります。明白な注釈はなく、DSLまたは注釈の遅延の設定に関する文書には何もありません。 DelayerはXML設定でのみサポートされていますか?

答えて

3

問題上のJava DSLは明らかである:生のJava &注釈構成注意を払うために

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

Programming Tips and Tricksへ。

あなたのための主なポイントはこれです:

すでに春の統合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)。 –