我正在使用 Spring Integration、Java DSL(1.1.3 版)
我的 org.springframework.integration.dsl.IntegrationFlow
定义如下
return IntegrationFlows.from(messageProducerSpec)
.handle(handler)
.handle(aggregator)
.handle(endpoint)
.get();
}
messageProducerSpec
是 org.springframework.integration.dsl.amqp.AmqpBaseInboundChannelAdapterSpec
的实例我希望我的集成流程使用来自两个单独
messageProducerSpecs
的消息(两个单独的 SimpleMessageListenerContainers
,每个使用不同的 ConnectionFactory
)。如何从多个 messageProducerSpec 构造integrationFlow?我没有看到能够使用来自多个来源的消息的集成组件。 最佳答案
在 Spring Integration 中没有理由这样做。
您始终可以将不同的端点输出到相同的 MessageChannel
。
因此,您应该为所有这些 IntegrationFlow
设置几个简单的 messageProducerSpec
并使用相同的 channel 完成它们,其中也应该是将从该 channel 监听的主要流程:
@Bean
public IntegrationFlow producer1() {
return IntegrationFlows.from(messageProducerSpec1)
.channel("input")
.get();
}
@Bean
public IntegrationFlow producer2() {
return IntegrationFlows.from(messageProducerSpec2)
.channel("input")
.get();
}
...
@Bean
public IntegrationFlow mainFlow() {
return IntegrationFlows.from("input")
.handle(handler)
.handle(aggregator)
.handle(endpoint)
.get();
}