参考博文
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());}
}
更多推荐
队列,后便,绑定,交换机,关系
发布评论