rabbitmq之无法自动创建队列的问题及解决过程
更新时间:2026年05月06日 17:14:30 作者:enjoy嚣士
文章描述了一项目使用RabbitMQ但仅使用发送功能未监听,导致启动时无自动创建队列的问题,作者通过手动连接RabbitMQ配置队列信息来解决此问题,并提供了一种测试可用的方法,此方法仅为作者个人经验,仅供参考
背景
子项目中使用了rabbitmq,但是只用了发送到队列的功能,没有监听,所以当项目启动时,并未自动创建队列
通过GPT,找到了如下解决方法,测试可用。
思路
配置队列信息时,手动调用连接rabbitmq一次,就会自动将队列创建好。
//以下代码添加到rabbitmq配置类中即可
@Value("${rabbitmq.registerQueueName:DefaultQueue}")
private String registerQueueName;
@Value("${rabbitmq.registerExchangeName:DefaultExchange}")
private String registerExchangeName;
@Resource
private ConnectionFactory connectionFactory;
/**
* 队列
*
* @return
*/
@Bean
public Queue imageQueue() {
return new Queue(registerQueueName, true);
}
/**
* 交换机
*
* @return
*/
@Bean
public FanoutExchange imageExchange() {
return new FanoutExchange(registerExchangeName, true, false);
}
/**
* 绑定交换机和队列
*
* @return
*/
@Bean
public Binding bindingExchange() {
return BindingBuilder.bind(imageQueue()).to(imageExchange());
}
//关键代码,手动连接rabbitmq一次,自动创建队列
@Bean
public ApplicationRunner runner() {
return args -> connectionFactory.createConnection().close();
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spingboot JPA CriteriaBuilder 如何获取指定字段
这篇文章 主要介绍了Spingboot JPA CriteriaBuilder 如何获取指定字段,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12
springboot如何通过controller层实现页面切换
在Spring Boot中,通过Controller层实现页面切换背景,Spring Boot的默认注解是@RestController,它包含了@Controller和@ResponseBody,@ResponseBody会将返回值转换为字符串返回,因此无法实现页面切换,将@RestController换成@Controller2024-12-12


最新评论