spring-集成jms选择器-表达式

spring-integration jms selector-expression

消息驱动通道适配器似乎不支持选择器表达式。

<int-jms:message-driven-channel-adapter 
            selector-expression="workerGroup = '@environment.getDeploymentEnvironment().toString()'"
            concurrent-consumers="1" 
            transaction-manager="transactionManager"
            destination="queue" channel="channel"/>

==>

'selector-expression' is not allowed to appear in element 'int-jms:message-driven-channel-adapter'

关于我如何完成这项工作的任何提示。

我猜他们为 message-driven-channel-adapter[ 添加了 selector 而不是 selector-expression =15=]。我没试过,但我想它的工作原理与提供的文档相同。

您似乎正在尝试使用 SpEL 构建消息选择器。

选择器必须在初始化时定义。

Spring 集成 ...-expression 属性适用于在运行时计算表达式(通常针对消息),而不是在初始化期间静态计算,正常 Spring #{...} SpEL用于此。

您应该可以使用...

selector-expression="workerGroup = #{environment.getDeploymentEnvironment().toString()}" 

...在初始化期间设置此选择器。