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即可,如下代码。不然就会抛出如上异常。

相关推荐
二宝哥37 分钟前
离线安装maven
java·数据库·maven
日月云棠1 小时前
6 高级配置:Spring Boot整合、泛化调用与配置指南
java·后端
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【58】Spring AI Alibaba Builtin Nodes 模块介绍
java·人工智能·spring
wyu729611 小时前
SpringBoot学习记录,一个小项目实战
java
小江的记录本1 小时前
【Java基础】反射与注解:核心原理、自定义注解、注解解析方式(附《思维导图》+《面试高频考点清单》)
java·数据结构·python·mysql·spring·面试·maven
ch.ju1 小时前
Java Programming Chapter 4——Composition of classes
java·开发语言
日月云棠1 小时前
5 高级配置:多注册中心与异步化编程
java·后端
敖正炀2 小时前
BlockingQueue 与生产者-消费者模式:并发数据传递的源码内核
java
敖正炀2 小时前
Stream API 惰性求值与内部迭代
java
日月云棠2 小时前
4 高级配置:容错策略、降级保护与流量控制
java·后端