2016-11-16 126 views
1

我正在使用java DSL配置我的通道適配器。我想實現的事情可以用下面的代碼來描述:彈簧集成:接收來自多個JMS目標的消息

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目的地接收。它可以實現嗎?

回答

2

不,這是不可能的。

Spring集成JMS支持完全基於Spring JMS基礎。它的AbstractMessageListenerContainer提供了只能使用一個destination的能力。因此,Jms.messageDriverChannelAdapter()不提供配置多個要監聽的目的地的選項。

您只有選擇配置幾個Jms.messageDriverChannelAdapter() s。 Spring集成有什麼好處,你可以將它們全部輸出到MessageChannel,並且你不會有太多的複製/粘貼地獄。