如何在 DirectMessageListenerContainer 中实现 ApplicationListener

How to implement an ApplicationListener in DirectMessageListenerContainer

任何人都可以指导如何以编程方式在 DirectMessageListenerContainer(spring rabbitmq) 中注册一个 ApplicationListener 来处理 ListenerContainerConsumerFailedEvent

提前致谢。

监听器没有注册到容器;它只是作为 @Bean 添加到 Spring 应用程序上下文;容器发布事件并 Spring 将其分派给每个已注册的侦听器。

编辑

不要把代码放在评论里;他们呈现得不好 - 总是编辑问题并添加你已经这样做的评论。

像那样创建容器意味着您将错过所有 Spring 优点和注入的依赖项;最好将 DirectRabbitListenerContainerFactory @Bean 添加到应用程序上下文并使用它来创建容器 - 这样事件发布者就会被注入。

你只需要一个倾听者;它将接收来自所有容器的事件。

如果你根本不使用Spring(除了spring-rabbit)那么你需要自己满足容器的所有...Aware接口并调用afterPropertiesSet() .

在这种情况下,您将调用 setApplicationEventPublisher() 与您的自定义发布商,后者将接收事件。