2014-02-18 59 views
2

我有以下XML和我想與@Configuration註釋的配置與使用Spring集成

<int:gateway id="someActionGateway " 
     service-interface="x.y.z.SomeActionGateway" 
     default-request-channel="some-action-channel-raw" /> 

<int:channel id="some-action-channel-raw" /> 

<int:header-enricher input-channel="some-action-channel-raw" output-channel="some-action-to-json-channel"> 
     <int:header name="someAction" value="sendSomething"/> 
</int:header-enricher> 

    <int:channel id="some-action-to-json-channel" /> 

    <int:object-to-json-transformer 
     input-channel="some-action-to-json-channel" output-channel="some-action-outbound-channel" 
     content-type="text/x-json" /> 

    <int:channel id="some-action-outbound-channel" /> 

    <int-amqp:outbound-channel-adapter 
     channel="some-action-outbound-channel" exchange-name="some-action-exchange" 
     routing-key="someAction.routing.key" amqp-template="amqpTemplate" 
     mapped-request-headers="*"> 
    </int-amqp:outbound-channel-adapter> 

    <rabbit:direct-exchange name="some-action-exchange" 
     auto-delete="false" durable="true"> 
     <rabbit:bindings> 
      <rabbit:binding queue="some-action-queue" key="someAction.routing.key" /> 
     </rabbit:bindings> 
    </rabbit:direct-exchange> 

和我的網關來代替這惱人的xml:

public interface SomeActionGateway { 

    @Gateway 
    public void sendSomething(@Payload SomeDto dto); 

} 
我已經使用配置

spring-amqp的註釋類,它工作正常。 我怎樣才能做到與Spring集成配置相同?

P.S:我使用Spring 3.2和Spring集成3.0

回答

4

我對不起你找到XML配置 「煩人」。

我們正在努力改進Spring Integration的JavaConfig(@Configuration)體驗。

您目前可以使用JavaConfig連接任何端點,但這不太好;端點可以連接MessageDrivenConsumer(或PollingConsumer)連同適當的MessageHandler。您將不得不深入探索ConsumerEndpointFactoryBean和XML解析器以獲取全部細節。大多數組件需要多個bean定義。

就像我說的,我們正在研究它;我們目前對於網關有一個開放的Pull Request,並且有一個Java DSL正在進行中in the extensions repo,但它正在進行中,Scala和Groovy DSL也是如此。

編輯:

Spring集成4.0使得它更容易使用@Configuration

查看最近的webinar