当前位置: 首页 > 知识库问答 >
问题:

Spring Integration DSL:向多个endpoint发送转换输出

冉子石
2023-03-14

遗留的Spring集成项目使用XML定义工作流。基本流程如下:

    null
<int:chain input-channel="inputChannel">
    <int:transformer ref="..." />
    <int:recipient-list-router apply-sequence="true">
        <int:recipient channel="outputChannel1" />
        <int:recipient channel="outputChannel2" />
        <int:recipient channel="outputChannel3" />
    </int:recipient-list-router>
</int:chain>
@Bean
public DirectChannel outputChannel() {
    return new DirectChannel();
}

@Bean
public org.springframework.integration.dsl.IntegrationFlow listenerFlow() {
    return IntegrationFlows
            .from(inputChannel)
            .transform(transformer)
            .channel(outputChannel())
            .get();
}

@Bean
public org.springframework.integration.dsl.IntegrationFlow outputFlow() {
    return IntegrationFlows
            .from(outputChannel())
            .handle(handler)
            .get();
}

每个endpoint都被表示为单独的IntegrationFlowbean。这是最佳实践吗?还是最好让一个integrationflow代表完整的工作流(如果可能的话)?

谢谢

共有1个答案

林元明
2023-03-14

您可以使用.routeToreCipients(),原因相同:https://docs.spring.io/spring-integration/docs/5.0.2.release/reference/html/java-dsl.html#java-dsl-routers

然后为每个收件人分别设置流。

 类似资料:
  • 有史以来第一次使用PS,有史以来第一次一般的脚本! 我在主机上本地存储了一个 wsdl,它指向本地主机终结点。这是必要的,因为远程服务器不为 wsdl 提供服务。但是,它们是这些 SOAP 请求的有效终结点。 我的网络中有多个endpoint,我想在引用静态wsdl的同时向每个endpoint发送New-WebServiceProxy请求。是否有办法使用本地wsdl,但指定目标endpoint覆盖

  • 我有一个关于Spring WebFlux的问题。我想创建一个使用内容类型text/event-stream的反应endpoint。不是生产而是消费。我们的一个服务需要向另一个服务发送大量的小对象,我们认为这样流式传输可能是一个很好的解决方案。 流量是每1秒产生一个值的流。我遇到的问题是,WebClient完全读取发布服务器,然后将数据作为一个整体发送,而不是一个接一个地流式传输。我能用这个客户机或

  • 我正在将xml从seda队列发送到JMS队列。我在exchange的标头中有一些metadeta,我想将其传递给JMS队列。 我是否必须从exchange对象的标头显式获取元数据,然后将其设置为xml?或者,如果Camel可以在开箱即用的情况下完成这项工作,那么还有其他方法吗?

  • 我需要使用< code>aws-sns-javascript向多个设备发送推送通知。当我创建createPlatformEndpoint时,我可以只添加一个设备令牌,但我需要向多个设备发送通知,如一个数组令牌 创建平台应用程序 创建平台终端节点 向Amazon SNS主题发送消息

  • 问题内容: 这是我的方案: 我必须调用一个方法。假设参数为:Parameter1,Parameter2,..,..,Parameter N,但是要发送给该方法的参数在每种情况下都可能会更改。 情况1: 仅发送参数 1 情况2: 发送参数的组合 情况3: 发送所有参数 用Java实现此目标的最佳方法是什么? 问题答案: 解决方案取决于问题的答案-所有参数是否都将是同一类型,如果是,则每个参数将被视为

  • 我需要使用< code>aws-sdk-go lib通过设备令牌数组向多个设备发送SNS推送通知。 目前我正在使用以下步骤向SNS发送推送消息: 创建endpoint: 将消息发送到endpoint: 我还没有见过一种方法,只使用一个请求就可以将一个推送消息发送到多个设备。可能吗? 像这个例子来说明: