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

Spring Integration Java DSL-IntegrationFlow多个订户

潘高岑
2023-03-14

我对Spring Integration DSL的使用速度太快了。我在玩下面的例子。

 @Bean
    public IntegrationFlow flow() {
        return IntegrationFlows.from(INBOX)
                .transform(p -> "world")
                .get();
    }

我正在寻找从这一个流订阅多个频道的能力。我找不到任何关于这个的东西。

例如,下面这样的内容,其中该流被订阅到不同的频道。

 @Bean
        public IntegrationFlow flow() {
            return IntegrationFlows.from(INBOX).flow(INBOX2)
                    .transform(p -> "world")
                    .get();
        }

共有2个答案

宋翔
2023-03-14

在本教程中[使用Spring Integration Java DSL在一个事务中接收和发送多个JMS消息],他们这样描述

但是,Java DSL尚未提供此属性。解决这个问题的另一种方法是用事务轮询器替换消息驱动的通道适配器,但是在当前的JavaDSL中这也是不可能的。为了解决这个问题,我们将出站适配器中的jmsFactory替换为会话事务设置为true的jmsTemplate。导致:

IntegrationFlows
  .from(subscribableChannel())
  .handle(Jms.outboundAdapter(jmsTemplate).destination(QUEUE2))
.get();
葛嘉悦
2023-03-14

这是不可能的。没有任何带有多个输入通道的endpoint

另一方面,我们不需要这样的复杂性,因为我们总是可以从一个通道连接到另一个通道:

@Bean
@BridgeTo(INBOX)
public MessageChannel INBOX2() {
    return new DirectChannel();
}

你也可以考虑使用一些<代码>路由器>代码>来评估所需的输出通道。

在Spring集成设计中,MessageChannel本身很复杂,弄乱endpoint逻辑听起来不太好。

 类似资料:
  • 3.3 查询多个订单 3.3.1 描述 通过调用该接口为指定电话号码和指定时间的订单明细 3.3.2 请求地址 地址:https://api.bokecs.com/recharge/order/getOrders?mobile=18514428128&startDate=2018-04-24 12:12:13&endDate=2018-04-25 12:12:13&sortOrder=desc 3

  • 我正在用Scala编写一个GUI,在尝试在一个foreach语句中注册按钮事件时遇到了一个奇怪的问题:对于对象列表中的每个元素(对象0)…对象n),检索相应的按钮x=按钮i,并用代码框订阅给定框。listenTo(x)。按下按钮时,应执行与对象相关的一些操作(在这种情况下,): 但是,我得到了一些非常奇怪的行为,单击任何按钮都会触发所有此类对象操作——请参阅程序输出: 我完全不知道为什么会这样;无

  • 我检查了贝宝开发人员的文档,以找到一个适合我的支付处理需求的解决方案。现在我不确定平行付款是否可以按我需要使用。 场景:商店中的客户可以有多个推车,因为每个推车都与一个可选择的交货时间相关联。结账时,每一辆车都必须成为一个单独的订单,并有自己的发票。现在,使用PayPal支付时,每一个订单都需要有自己的带有交易ID的支付等等,总结起来,我不需要一次性支付给多个接收方,而是每个订单多个支付给一个接收

  • 如何为订单创建多个授权? 根据医生的说法: 订单有效期为29天。在此期间,您可以请求从一个到十个或更多的授权,以确保资金的可用性。默认情况下,您可以为每个订单创建最多十个基本授权。https://developer.paypal.com/docs/integration/direct/payments/orders/#overview 我试图创建一个订单,意图=授权,然后发布 https://ap

  • 我在代理“客户”群体中用Anylogic创建了一个时间表,客户必须创建订单并将其发送到“终端”。每天,每个客户必须发送到终端的订单量都是不同的。我想一次创建多个订单(每天,即计划中的开始列),我想创建的金额是计划中的值列。如何做到这一点? 正如您在下面看到的,现在每天只创建一个订单(以金额为参数),但我想在那一天/那一刻创建这个订单量。谢谢您的帮助! 日程数据如下所示:

  • 所以,在上面的例子中,可以看到有2个订阅者接受相同类型的处理。现在,在post()的时候,所有的函数都将被调用吗?如果接收StartRequest的两个函数将被调用,那么它们将以哪种顺序被调用?