如何在 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()
与您的自定义发布商,后者将接收事件。
任何人都可以指导如何以编程方式在 DirectMessageListenerContainer(spring rabbitmq) 中注册一个 ApplicationListener 来处理 ListenerContainerConsumerFailedEvent
提前致谢。
监听器没有注册到容器;它只是作为 @Bean
添加到 Spring 应用程序上下文;容器发布事件并 Spring 将其分派给每个已注册的侦听器。
编辑
不要把代码放在评论里;他们呈现得不好 - 总是编辑问题并添加你已经这样做的评论。
像那样创建容器意味着您将错过所有 Spring 优点和注入的依赖项;最好将 DirectRabbitListenerContainerFactory
@Bean
添加到应用程序上下文并使用它来创建容器 - 这样事件发布者就会被注入。
你只需要一个倾听者;它将接收来自所有容器的事件。
如果你根本不使用Spring(除了spring-rabbit)那么你需要自己满足容器的所有...Aware
接口并调用afterPropertiesSet()
.
在这种情况下,您将调用 setApplicationEventPublisher()
与您的自定义发布商,后者将接收事件。