对于最新稳定版本,请使用 Spring Integration 7.0.0spring-doc.cadn.net.cn

运营商网关()

网关()集成流程定义是一种特殊的服务激活器实现,通过其输入通道调用其他端点或集成流并等待回复。 从技术上讲,它和嵌套起到相同的作用<网关>在 a 中的组件<链>定义(参见从链中调用链)并使流程更简洁、更直接。 从逻辑上讲,从业务角度来看,它是一个消息网关,允许在目标集成解决方案的不同部分之间分配和重用功能(参见消息网关)。 该算子有多个用于不同目标的超载:spring-doc.cadn.net.cn

  • gateway(String requestChannel)向某个端点的输入通道发送消息,按其名称;spring-doc.cadn.net.cn

  • 网关(MessageChannel requestChannel)通过直接注入向某端点的输入通道发送消息;spring-doc.cadn.net.cn

  • 网关(IntegrationFlow 流)向所提供的输入信道发送消息集成流程.spring-doc.cadn.net.cn

这些都有与第二个变体的变体Consumer<GatewayEndpointSpec>参数以配置目标网关消息处理器以及摘要终点. 另外,还有集成流程基于的方法允许调用现有方法集成流程或通过原位lambda声明该流为子流,用于集成流程功能接口或在私人方法清洁器代码样式:spring-doc.cadn.net.cn

@Bean
IntegrationFlow someFlow() {
        return IntegrationFlow
                .from(...)
                .gateway(subFlow())
                .handle(...)
                .get();
}

private static IntegrationFlow subFlow() {
        return f -> f
                .scatterGather(s -> s.recipientFlow(...),
                        g -> g.outputProcessor(MessageGroup::getOne))
}
如果下游流量不总是返回回复,你应该设置请求超时将 0 设置为 0,以防止调用线程无限期挂起。 在这种情况程会在该点结束,线程会被释放以便继续工作。