我有一个使用Spring Integration的应用程序,其中我有一些服务网关方法的多个处理程序(策略),我希望部署启动程序能够选择加载哪些特定处理程序。由于组件扫描会不加选择地拾取所有处理程序,因此我更愿意为它们显式声明JavaConfig @Bean
。
这适用于服务对象本身,但是我找不到在没有@IntegrationComponentScan
的情况下用Java加载服务接口本身的方法。我目前的解决方法是包括一个&#34; one-liner&#34;带有<int-gateway>
标记和@ImportResource
的XML文件,但我真的更喜欢更直接的解决方案。
JavaConfig中是否有任何直接的方法告诉Spring Integration为特定类创建代理服务接口?
答案 0 :(得分:2)
GatewayProxyFactoryBean
适合你。
此类用于从<int:gateway>
标记和MessagingGateway
注释填充bean定义。
所以,你可以这样做:
@Bean
public GatewayProxyFactoryBean myGateway() {
GatewayProxyFactoryBean factoryBean = new GatewayProxyFactoryBean(YourServiceInterface.class);
factoryBean.setDefaultRequestChannel(gatewayRequestChannel());
return factoryBean;
}