Spring集成动态消息选择器

时间:2015-10-31 00:49:42

标签: java spring spring-integration

我有一个带有两个队列的应用程序,第一个队列有控制消息,另一个队列有数据消息。根据来自控制队列的消息的JMSCorrelationID,我需要只从数据队列中读取具有该JMSCorrelationID的消息。

我可以使用下面定义的选择器有选择地从数据队列中读取消息。

<int-jms:message-driven-channel-adapter id="messageDrivenInboundAdapter"
    channel="inboundChannel" destination-name="inboundMQ"
    selector="JMSCorrelationID = 'JMSCORELIS1234'"
    connection-factory="connectionFactory" extract-payload="false"/>

我需要根据在不同频道上收到的消息动态更新选择器的JMSCorrelationID的值。

有可能吗?是否有不同的方法在Spring集成中实现此解决方案?

1 个答案:

答案 0 :(得分:0)

消息驱动适配器无法实现;选择器被烘焙到初始化期间构造的消息侦听器容器中。

您可以更改已轮询的<inbound-channel-adapter/>的消息选择器;该变更将在下次投票中生效。

您可以通过自动连线或通过bean名称(JmsDestinationPollingSource)获取adapterId.source的句柄。