Ary*_*rya 8 messaging spring jms
我正在使用JMS API(使用HornetQ),我正在使用spring bean作为消息监听器容器和消息监听器:
<bean id="messageListener" class="core.messaging.handler.MessageListener">
<property name="postCommandService" ref="postCommandService" />
</bean>
<bean id="messageSender"
class="lsn.messaging.sender.MessageSender">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="destination" />
</bean>
<bean id="msgListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="connectionFactory"
p:destination-ref="destination"
p:messageListener-ref="messageListener"
p:concurrentConsumers="10"
p:maxConcurrentConsumers="50"
p:receiveTimeout="5000"
p:idleTaskExecutionLimit="10"
p:idleConsumerLimit="5" />
Run Code Online (Sandbox Code Playgroud)
如果我想要我的消息监听器,只消耗特定的消息(具有相同的StringProperty)我该怎么办?我应该在哪里定义选择器?
我有下面的解决方案,但我没有MessageConsumer,所以我不能添加选择器:
String redSelector = "color='red'";
MessageConsumer redConsumer = session.createConsumer(queue, redSelector);
redConsumer.setMessageListener(new SimpleMessageListener("red"));
TextMessage redMessage = session.createTextMessage("Red");
redMessage.setStringProperty("color", "red");
producer.send(redMessage);
Run Code Online (Sandbox Code Playgroud)
您应该能够以这种方式将它添加到MessageListenerContainer:
p:messageSelector="color='red'"
| 归档时间: |
|
| 查看次数: |
13978 次 |
| 最近记录: |