我想知道如何在运行时从侦听器容器中添加/删除一些侦听器。
我已经配置了侦听器容器,如下所示:
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="Listener0" queues="ListenerQueue0" />
<rabbit:listener ref="Listener1" queues="ListenerQueue1" />
<rabbit:listener ref="Listener2" queues="ListenerQueue2" />
我们可以想到一种方法是添加/删除兔子:听众&#39;从运行时的xml和刷新应用程序上下文,所以将加载新的配置。 这是好事吗?
请告诉我其他建议。提前致谢。
答案 0 :(得分:0)
我不会使用你描述的方法。
每个<rabbit:listener/>
子元素实际上是SimpleMessageListenerContainer
,<rabbit:listener-container/>
只是语法糖,为孩子提供了共同的属性&#34;容器
如果您的听众是POJO(即不是MessageListener
),请将其换成MessageListenerAdapter
。
因此,您只需在运行时创建一个新的SimpleMessageListenerContainer
- 请务必在配置afterPropertiesSet()
之后再调用start()
。