SpringBoot整合rabbitMQ 启动服务后便自动创建交换机,队列,绑定关系等

编程入门 行业动态 更新时间:2024-10-28 20:27:52

参考博文
blog.csdn.net/zhangshengqiang168/article/details/104753133

启动服务不默认先创建队列的话,在启动消费者时候,消费者服务监听会找不到对应的队列而报错,启动失败

1 application.yml配置

server:port: 8021
spring:#给项目来个名字application:name: rabbitmq-test#配置rabbitMq 服务器rabbitmq:host: 127.0.0.1port: 5672username: needpassword: 123456#虚拟host 可以不设置,使用server默认hostvirtual-host: /testhost

2 交换机,队列,绑定等 配置类

import .springframework.amqp.core.*;
import .springframework.amqp.rabbit.connection.ConnectionFactory;
import .springframework.amqp.rabbit.core.RabbitAdmin;
import .springframework.beans.factory.annotation.Autowired;
import .springframework.context.annotation.Bean;
import .springframework.context.annotation.Configuration;
import java.util.HashMap;@Configuration
public class ExchangeQueueBindingConfig {//就是靠他@AutowiredRabbitAdmin rabbitAdmin;//死信队列@Beanpublic Queue createShiXinQueue() {return new Queue("shixin_queue", true);}//死信交换机@Beanpublic DirectExchange createShiXinExchange() {return new DirectExchange("shixin_exchange", true, false);}//死信交换机 死信队列 绑定@Beanpublic Binding createShiXinBinding() {return BindingBuilder.bind(createShiXinQueue()).to(createShiXinExchange()).with("shixin");}//正常队列@Beanpublic Queue createZhengChangQueue() {HashMap<String, Object> map = new HashMap<String, Object>();map.put("x-dead-letter-exchange", "shixin_exchange");map.put("x-dead-letter-routing-key", "shixin");return new Queue("zhengchang_queue", true, false, false, map);}//正常交换机@Beanpublic TopicExchange createZhengChangExchange() {return new TopicExchange("zhengchang_exchange", true, false);}//正常交换机 正常队列 绑定@Beanpublic Binding createZhengChangBinding() {return BindingBuilder.bind(createZhengChangQueue()).to(createZhengChangExchange()).with("chongqing.#");}//创建初始化RabbitAdmin对象@Beanpublic RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory);// 只有设置为 true,spring 才会加载 RabbitAdmin 这个类rabbitAdmin.setAutoStartup(true);return rabbitAdmin;}//创建交换机和对列@Beanpublic void createExchangeQueue() {//死信rabbitAdmin.declareExchange(createShiXinExchange());rabbitAdmin.declareQueue(createShiXinQueue());//正常rabbitAdmin.declareExchange(createZhengChangExchange());rabbitAdmin.declareQueue(createZhengChangQueue());}
}

 

更多推荐

队列,后便,绑定,交换机,关系

本文发布于:2023-05-31 12:01:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/391355.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:队列   后便   绑定   交换机   关系

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!