IT俱乐部 Java 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();
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/code/java/17879.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部