背景
子项目中使用了rabbitmq,但是只用了发送到队列的功能,没有监听,所以当项目启动时,并未自动创建队列
通过GPT,找到了如下解决方法,测试可用。
思路是:配置队列信息时,手动调用连接rabbitmq一次,就会自动将队列创建好。
//以下代码添加到rabbitmq配置类中即可@Value("${rabbitmq.registerQueueName:DefaultQueue}")privateString registerQueueName;@Value("${rabbitmq.registerExchangeName:DefaultExchange}")privateString registerExchangeName;@ResourceprivateConnectionFactory connectionFactory;/**
* 队列
*
* @return
*/@BeanpublicQueueimageQueue(){returnnewQueue(registerQueueName,true);}/**
* 交换机
*
* @return
*/@BeanpublicFanoutExchangeimageExchange(){returnnewFanoutExchange(registerExchangeName,true,false);}/**
* 绑定交换机和队列
*
* @return
*/@BeanpublicBindingbindingExchange(){returnBindingBuilder.bind(imageQueue()).to(imageExchange());}//关键代码,手动连接rabbitmq一次,自动创建队列@BeanpublicApplicationRunnerrunner(){return args -> connectionFactory.createConnection().close();}
标签:
rabbitmq
本文转载自: https://blog.csdn.net/u013919153/article/details/138063752
版权归原作者 enjoy嚣士 所有, 如有侵权,请联系我们删除。
版权归原作者 enjoy嚣士 所有, 如有侵权,请联系我们删除。