博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot~rabbitmq的队列初始化和绑定
阅读量:5811 次
发布时间:2019-06-18

本文共 3394 字,大约阅读时间需要 11 分钟。

配置文件,在rabbit中自动建立exchange,queue和绑定它们的关系

  1. 代码里初始化exchange
  2. 代码里初始化queue
  3. 代码里绑定exchange,queue和routekey
  4. 配置文件,直接声明vhost

代码里初始化exchange

/**   * rabbitMq里初始化exchange.   *   * @return   */  @Bean  public TopicExchange crmExchange() {    return new TopicExchange(EXCHANGE);  }

代码里初始化queue

/**   * rabbitMq里初始化队列crm.hello.   *   * @return   */  @Bean  public Queue helloQueue() {    return new Queue(HELLO);  }

代码里绑定exchange,queue和routekey

/**   * 绑定exchange & queue & routekey.   *   * @param queueMessage 队列   * @param exchange     交换机   * @param routekey     路由   * @return   */  public Binding bindingExchange(Queue queueMessage, TopicExchange exchange, String routekey) {    return BindingBuilder.bind(queueMessage).to(exchange).with(routekey);  }

配置文件

spring:    rabbitmq:    host: localhost    port: 5672    username: guest    password: guest    virtual-host: lind

完整代码

package com.lind.microservice.productCenter.mq;import org.springframework.amqp.core.Binding;import org.springframework.amqp.core.BindingBuilder;import org.springframework.amqp.core.Queue;import org.springframework.amqp.core.TopicExchange;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * amqp配置. */@Configurationpublic class AmqpConfig {  /**   * 交换机.   */  public final static String EXCHANGE = "crm";  /**   * hello队列.   */  public final static String HELLO = "crm.hello";  /**   * 建立订单队列.   */  public final static String LIND_GENERATE_ORDER = "crm.generate.order";  /**   * 绑定exchange & queue & routekey.   *   * @param queueMessage 队列   * @param exchange     交换机   * @param routekey     路由   * @return   */  public Binding bindingExchange(Queue queueMessage, TopicExchange exchange, String routekey) {    return BindingBuilder.bind(queueMessage).to(exchange).with(routekey);  }  /**   * rabbitMq里初始化exchange.   *   * @return   */  @Bean  public TopicExchange crmExchange() {    return new TopicExchange(EXCHANGE);  }  /**   * rabbitMq里初始化队列crm.hello.   *   * @return   */  @Bean  public Queue helloQueue() {    return new Queue(HELLO);  }  /**   * rabbitMq里初始化队列crm.generate.order.   *   * @return   */  @Bean  public Queue orderQueue() {    return new Queue(LIND_GENERATE_ORDER);  }}

队列发布者

package com.lind.microservice.productCenter.mq;import java.util.Date;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;@Configurationpublic class HelloPublisher {  @Autowired  AmqpTemplate rabbitTemplate;  @Autowired  AmqpConfig amqpConfig;  public void hello() {    String context = "hello " + new Date();    System.out.println("HelloPublisher : " + context);    amqpConfig.bindingExchange(        amqpConfig.helloQueue(),        amqpConfig.crmExchange(),        "crm.hello.#"    );    this.rabbitTemplate.convertAndSend(AmqpConfig.EXCHANGE, AmqpConfig.HELLO, context);  }}

队列订阅者

package com.lind.microservice.productCenter.mq;import org.springframework.amqp.rabbit.annotation.RabbitHandler;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;@Component@RabbitListener(queues = AmqpConfig.HELLO)public class HelloSubscriber {  @RabbitHandler  public void process(String hello) {    System.out.println("HelloSubscriber  : " + hello);  }}

转载于:https://www.cnblogs.com/lori/p/9739130.html

你可能感兴趣的文章
uva 11210 Chinese Mahjong(暴力搜索)
查看>>
jquery.autocomplete 传参问题
查看>>
Segmentation fault
查看>>
[物理学与PDEs]第5章第3节 守恒定律, 应力张量
查看>>
BZOJ3542:DZY Loves March
查看>>
dvi 中的内容居中
查看>>
15万甚至30万以内的SUV值不值得买?
查看>>
jQuery源码分析-jQuery中的循环技巧
查看>>
window dos 设置网络
查看>>
分布式存储系统sheepdog
查看>>
【shadow dom入UI】web components思想如何应用于实际项目
查看>>
质检总局-版权局
查看>>
多条查询sql语句返回多表数据集
查看>>
系列文章--C#即时通讯开发
查看>>
[转]Android中dp,px,sp概念梳理以及如何做到屏幕适配
查看>>
MySQL 触发器
查看>>
JS学习随笔
查看>>
JavaScript一些函数
查看>>
国务院关于积极推进“互联网+”行动的指导意见
查看>>
android学习笔记---63-PopupWindow,泡泡窗口的实现
查看>>