spring-rabbit - 如何在 DirectMessageListenerContainer 中实现 ApplicationListener
问题描述
任何人都可以指导如何在 DirectMessageListenerContainer(spring rabbitmq) 中以编程方式注册 ApplicationListener 来处理 ListenerContainerConsumerFailedEvent
提前致谢。
解决方案
监听器没有注册到容器中;它只是作为一个添加@Bean
到 Spring 应用程序上下文中;容器发布事件,Spring 将其分派给每个注册的侦听器。
编辑
不要将代码放在注释中;它们呈现不佳 - 始终编辑问题并添加您已完成的评论。
像这样创建容器意味着您将错过所有 Spring 的优点和注入的依赖项;最好将 a 添加DirectRabbitListenerContainerFactory
@Bean
到应用程序上下文并使用它来创建容器 - 这样事件发布者将被注入。
你只需要一个听众;它将接收来自所有容器的事件。
如果您根本不使用 Spring(spring-rabbit 除外),那么您需要自己满足所有容器的...Aware
接口并调用afterPropertiesSet()
.
在这种情况下,您将setApplicationEventPublisher()
与将接收事件的自定义发布者联系。
推荐阅读
- c++ - C++ 概念:如何使用“概念”来检查模板结构的属性?
- python - 有没有办法随机化主循环中子循环的顺序?
- node.js - 如何使用函数写入我的 Firestore 数据库?
- java - 通过 Post 将 BLOB 发送到 Java 后端
- javascript - 如何在 html 表格中仅更改最小单元格的颜色
- c# - 使用 Github 的 GraphQL 列出所有标签并搜索发布
- asp.net-mvc - 公共网络上的 ADFS 身份验证
- javascript - 获取元素目标内部文本的最佳方法
- html - There is no result of my html file in any browser
- javascript - 使用对象选择运行哪个函数(动态)