rabbitmq - RabbitMQ 没有在启动应用程序时创建交换的任何原因?
问题描述
我有奇怪的 RabbitMQ 行为(当然对我而言)。
当我启动 Spring Boot Web 应用程序时,在我的配置中我试图创建 rabbit 直接交换:
@Bean
public DirectExchange exchange() {
return new DirectExchange(directExchangeName);
}
但是当应用程序启动时,我在 RabbitMQ 管理中找不到这个交换器。但这很有趣,因为在 ApplicationContext 中我可以看到这个 bean。
该交换器在第一次调用后开始显示在 RabbitMQ 管理中。
我错过了什么吗?还是我的配置有问题?
解决方案
你需要一个RabbitAdmin
@Bean
自动声明交换、队列、绑定。
而且,即使那样,声明也不会发生,直到某个组件(侦听器容器、模板)打开连接;管理员注册为连接侦听器。
推荐阅读
- javascript - Vue Multiselect 未提交 ID 值(Rails API)
- node.js - 带有 Multipart/form-data 的 PUT 请求仅在 Firefox 中失败
- python - 高效的字符串后缀检测
- django - 如何从 ImageField 中删除不需要的东西 - Django
- javascript - 带有分数的 Vue.JS 测验 - 2 个回答者有效,3 个无效
- angular - 如何在带有打字稿的 Observable 中调用带有计时器的 Observable?
- php - 我在 yii 1.1 中做项目,在 $_post['submit']; 我得到所有数据但图像数据没有得到所以我必须做什么?
- c - 如何用整数计算浮点数的标准化方法?
- liquibase - 有没有办法在现有数据库上为每个表生成更改日志?
- regex - 拆分具有不应拆分的未转义逗号的逗号分隔字符串