我有JmsTemplate
的JMS队列实现。当消息放入队列时我希望有多个监听器,即我想使用topic而不是queue。
我没有JMS命名空间的配置。当有人在主题中发送消息时,需要对多个侦听器侦听主题进行哪些更改。
答案 0 :(得分:1)
我猜你可能正在使用DefaultMessageListenerContainer
。可以肯定的是,您希望多个单独的组件收到相同的消息(即您不希望并行处理消息)。
假设我做对了,组件A和组件B应该收到相同的消息,你只需在同一主题上创建两个DefaultMessageListenerContainer
实例,然后将pubSubDomain
属性设置为true
。确保您没有在侦听器容器上设置任何并发性,或者更好的是,将并发性设置为1以使其显式化。
这会产生类似
的东西<bean id="listener1"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="pubSubDomain" value="true"/>
<property name="concurrency" value="1"/>
<property name="destinationName=" value="...."/> <!-- topic name -->
<property name="messageListener" ref="...."/>
</bean>
然后你应该为第二个组件创建一个类似的bean。