Java 如何从两个MessageProducerSpec创建Spring集成流?

Java 如何从两个MessageProducerSpec创建Spring集成流?,java,spring,spring-integration,Java,Spring,Spring Integration,我正在使用Spring集成,JavaDSL(1.1.3版) 我的org.springframework.integration.dsl.IntegrationFlow定义如下 return IntegrationFlows.from(messageProducerSpec) .handle(handler) .handle(aggregator) .handle(endpoint) .get

我正在使用Spring集成,JavaDSL(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


我希望我的集成流使用来自两个独立的
messageproducerspec
(两个独立的
SimpleMessageListenerContainers
,每个都使用不同的
连接工厂
)的消息。如何从多个messageProducerSpec构建集成流?我看不到任何集成组件能够使用来自多个源的消息。

在Spring集成中没有理由这样做

您始终可以将不同的端点输出到相同的
MessageChannel

因此,对于所有这些
messageProducerSpec
,您应该有几个简单的
IntegrationFlow
s,并使用相同的频道完成它们,其中也应该是从该频道收听的主流:

@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();
}