Spring运行程序RabbitMQ并没有自动创建队列的问题解决

几天前遇到了一个问题,如标题所说,自己代码@使用RabbitListener绑定一个交换机,但是代码运行后交换机按照配置项创建了出来,但是队列却无法创建成功,也就绑定失败了。

运行后就会抛出异常:

总体来说就是无法创建队列,这时检查我们的交换机已经创建出来了,那么这是我为什么呢?

解决方法:

这是因为我的代码

复制代码
@QueueBinding(
    value = @Queue(name = "custom_edit_user_queue"), 
    exchange = @Exchange(value = RabbitConfig.EXCHANGE_NAME, type = ExchangeTypes.FANOUT))

当我们使用@Exchange,如果我们不指定autoDelete属性他就是默认autoDelete = false,但是我所设计的交换机autoDelete=true。所以导致程序在检验绑定的交换机时,发现我所创建的交换机与我要绑定的交换机所声明的属性有所不同。我们直接显式的确定绑定交换机的autoDelete属性为true即可,如下代码。不然就会抛出如上异常。

相关推荐
稻草猫.7 小时前
MyBatis进阶:动态SQL与MyBatis Generator插件使用
java·数据库·后端·spring·mvc·mybatis
xiangpanf7 小时前
PHP vs Go:30秒读懂核心差异
java·开发语言
爱喝一杯白开水7 小时前
Java List 常用方法全攻略
java·list·排序算法
李白的粉7 小时前
基于springboot的在线问卷调查系统
java·spring boot·毕业设计·课程设计·源代码·在线问卷调查系统
程序员老乔7 小时前
Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(一):你的Java该升级了
java·spring boot·python
.select.7 小时前
C++ 单例模式
java·c++·单例模式
鬼蛟7 小时前
Spring MVC
java·spring·mvc
深念Y7 小时前
Nginx和Spring Cloud Gateway
运维·服务器·网络·网关·nginx·spring cloud·微服务
一直都在5727 小时前
JAVA类的加载过程
java·开发语言
014-code7 小时前
Dubbo 之 “最速传说”
java·分布式·dubbo