不同方法的通道相同

时间:2015-04-02 11:27:17

标签: spring-integration

可以使用多方法接口作为只有一个通道的网关吗?

我使用spring integration 4.1.2.RELEASE。

不同的方法在其他服务器上调用不同的API方法。

我的配置/来源如下:

网关:

@MessagingGateway
public interface TestService
{
  @Gateway(requestChannel="testRequestChannel")
  public Test findTestById( String test );

  @Gateway(requestChannel="testRequestChannel")
  public List<Test> getTests();

  .... many more methods ....
}

服务Impl:

@MessageEndpoint
public class TestServiceImpl
{
  @ServiceActivator( inputChannel = "testRequestChannel")    
  public Test findTestById( String test )
  {
    ...
  }

  @ServiceActivator( inputChannel = "testRequestChannel")    
  public List<Test> getTests( String test )
  {
    ...
  }
}

模特:

@Service
public class TestModel
{
  @Autowired
  private TestService testService;

  public Test findTestById( String test )
  {
    return this.testService.findTestById(test);
  }
}

谢谢

马塞尔

1 个答案:

答案 0 :(得分:0)

不,你不能这样做;订阅相同频道的2个服务意味着(默认情况下)该频道上的请求将轮流调度到该方法。

由于您正在使用网关启动流程,为什么不为每个使用单独的通道?