Spring集成:从多个JMS目标接收消息

时间:2016-11-16 16:48:29

标签: java spring spring-integration

我正在使用java DSL来配置我的通道适配器。我想要实现的东西可以用以下代码来描述:

IntegrationFlows
                .from(Jms.messageDriverChannelAdapter(mqCacheConnectionFactory)
                        .configureListenerContainer(container -> container.sessionTransacted(transacted))
                        .destinations(inputDestination1, inputDestination2) // missing method
                        .autoStartup(autoStartup)
                        .id(channelName)
                        .errorChannel(errorChannel)
                )
                .channel(commonChannel)
                .get();

所以我希望messageDriverChannelAdapter能够从多个JMS目的地接收。它可以实现吗?

1 个答案:

答案 0 :(得分:2)

不,这是不可能的。

Spring Integration JMS支持完全基于Spring JMS基础。其AbstractMessageListenerContainer只能使用一个destination。因此Jms.messageDriverChannelAdapter()没有提供配置多个要收听的目的地的选项。

只有您拥有的选项是配置多个Jms.messageDriverChannelAdapter()。 Spring Integration有什么好处,你可以将它们输出到同一个MessageChannel并且你不会有太多的复制/粘贴地狱。