2014-06-18 18 views
0

我有一個使用Spring Integration的應用程序,其中有一些服務網關方法有多個處理程序(策略),我希望部署啓動程序能夠選擇加載哪些特定處理程序。由於組件掃描將不加區別地處理所有處理程序,所以我更願意爲它們明確聲明JavaConfig @Bean在Java配置中顯式聲明服務網關

這對服務對象本身工作正常,但我無法找到一種方法來加載服務接口本身在Java中沒有@IntegrationComponentScan。我現在的解決方法是包含一個「單行」XML文件,其中包含<int-gateway>標記和@ImportResource它,但我真的更喜歡更直接的解決方案。

JavaConfig中是否有任何直接的方式來告訴Spring Integration爲特定類創建代理服務接口?

回答

1

GatewayProxyFactoryBean是給你的。 該類用於從​​標記和MessagingGateway註釋中填充bean定義。

所以,你可以這樣做:

@Bean 
public GatewayProxyFactoryBean myGateway() { 
    GatewayProxyFactoryBean factoryBean = new GatewayProxyFactoryBean(YourServiceInterface.class); 
    factoryBean.setDefaultRequestChannel(gatewayRequestChannel()); 
    return factoryBean; 
} 
+0

我是正確的默認通道是不必要的,如果我明確設置的相關方法的渠道?如果是這樣,我可以簡單地'返回新的GatewayProxyFactoryBean(MyGateway.class)'? – chrylis

+0

是的。這應該夠了。 –