如何在运行时从侦听器容器添加/删除侦听器

时间:2016-04-14 07:19:06

标签: spring rabbitmq amqp spring-amqp spring-rabbitmq

我想知道如何在运行时从侦听器容器中添加/删除一些侦听器。

我已经配置了侦听器容器,如下所示:

<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和刷新应用程序上下文,所以将加载新的配置。 这是好事吗?

请告诉我其他建议。提前致谢。

1 个答案:

答案 0 :(得分:0)

我不会使用你描述的方法。

每个<rabbit:listener/>子元素实际上是SimpleMessageListenerContainer<rabbit:listener-container/>只是语法糖,为孩子提供了共同的属性&#34;容器

如果您的听众是POJO(即不是MessageListener),请将其换成MessageListenerAdapter

因此,您只需在运行时创建一个新的SimpleMessageListenerContainer - 请务必在配置afterPropertiesSet()之后再调用start()