我的春季启动应用程序有几种用@RabbitListener
注释的方法。当应用程序启动时,相应的使用者将在RabbitMQ中注册。
当我在代码中添加以下方法时,只会注册给定侦听器(idOfMySpecialListener
)的使用者,而其他所有者都不会。
@EventListener
public void onEnvironmentChangeEvent(EnvironmentChangeEvent event) {
MessageListenerContainer listenerContainer = rabbitListenerEndpointRegistry.getListenerContainer("idOfMySpecialListener");
listenerContainer.start();
}
为什么会这样?如何更改行为以启动所有侦听器(如果没有@EventListener
)和特定的侦听器(如果尚未启动)。
背景:我不想根据属性值的变化来启动/停止@RabbitListener
。