在Java配置中明确声明服务网关

时间:2014-06-18 09:08:13

标签: spring spring-integration spring-java-config

我有一个使用Spring Integration的应用程序,其中我有一些服务网关方法的多个处理程序(策略),我希望部署启动程序能够选择加载哪些特定处理程序。由于组件扫描会不加选择地拾取所有处理程序,因此我更愿意为它们显式声明JavaConfig @Bean

这适用于服务对象本身,但是我找不到在没有@IntegrationComponentScan的情况下用Java加载服务接口本身的方法。我目前的解决方法是包括一个&#34; one-liner&#34;带有<int-gateway>标记和@ImportResource的XML文件,但我真的更喜欢更直接的解决方案。

JavaConfig中是否有任何直接的方法告诉Spring Integration为特定类创建代理服务接口?

1 个答案:

答案 0 :(得分:2)

GatewayProxyFactoryBean适合你。 此类用于从<int:gateway>标记和MessagingGateway注释填充bean定义。

所以,你可以这样做:

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