手动启动MessageListenerContainer会阻止其他侦听器启动 - 为什么?

时间:2017-11-24 15:13:50

标签: spring spring-boot spring-amqp

我的春季启动应用程序有几种用@RabbitListener注释的方法。当应用程序启动时,相应的使用者将在RabbitMQ中注册。

当我在代码中添加以下方法时,只会注册给定侦听器(idOfMySpecialListener)的使用者,而其他所有者都不会。

@EventListener 
public void onEnvironmentChangeEvent(EnvironmentChangeEvent event) {
    MessageListenerContainer listenerContainer = rabbitListenerEndpointRegistry.getListenerContainer("idOfMySpecialListener");
    listenerContainer.start();
}

为什么会这样?如何更改行为以启动所有侦听器(如果没有@EventListener)和特定的侦听器(如果尚未启动)。

背景:我不想根据属性值的变化来启动/停止@RabbitListener

0 个答案:

没有答案