您的位置:首页 > 编程语言 > Java开发

springboot整合rabbitmq(Springboot2.X)

2019-12-11 14:31 1101 查看

  一、整合前的准备

  1.1、安装windows/linux系统版本的rabbitmq。

  1.2、此次整合使用eclipse

  二、springboot整合rabbitmq

  2.1、pom依赖引入

  org.springframework.boot

  spring-boot-starter-amqp

  2.2、yml配置和configer文件编写

  spring:

  rabbitmq:

  host: 127.0.0.1

  port: 5672

  username: xiangjiao

  password: bunana

  virtual-host: /xiangjiao

  #publisher-confirms: true #消息发送到转发器确认机制,是都确认回调

  #publisher-returns: true

  import org.springframework.amqp.core.Binding;

  import org.springframework.amqp.core.BindingBuilder;

  import org.springframework.amqp.core.DirectExchange;

  import org.springframework.amqp.core.Queue;

  import org.springframework.context.annotation.Bean;

  import org.springframework.context.annotation.Configuration;

  @Configuration

  public class MQConfiguration {

  //队列名称

  public static final String QUEUQ_NAME = "xiangjiao.queue";

  //交换器名称

  public static final String EXCHANGE = "xiangjiao.exchange";

  //路由key

  public static final String ROUTING_KEY = "xiangjiao.routingKey";

  //创建队列

  @Bean

  public Queue getQueue(){

  return new Queue(QUEUQ_NAME);

  }

  //实例化交换机

  @Bean

  public DirectExchange getDirectExchange(){

  //DirectExchange(String name, boolean durable, boolean autoDelete)

  return new DirectExchange(EXCHANGE, true, true);

  }

  //绑定消息队列和交换机

  @Bean

  public Binding bindExchangeAndQueue(DirectExchange exchange,Queue queue){

  return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);

  }

  }

  2.3、消息消费者监听创建

  import org.springframework.amqp.rabbit.annotation.RabbitListener;

  import org.springframework.stereotype.Service;

  import cn.linkpower.config.MQConfiguration;

  @Service郑州人流医院 http://m.zzzy120.com/

  public class MessageConsumerService {

  @RabbitListener(queues=MQConfiguration.QUEUQ_NAME)

  public void receiveMessage(String msg){

  System.err.print("红色 接收消息----"+String.valueOf(msg));

  }

  }

  2.4、消息生产者

  2.4.1、创建消息生产者接口

  /**

  * 定义消息发送接口

  * @author 765199214

  *

  */

  public interface IMessageProductService {

  public void sendMessage(String msg);

  }

  2.4.2、创建消息消费者实现类

  import org.springframework.amqp.rabbit.core.RabbitTemplate;

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.stereotype.Service;

  import cn.linkpower.config.MQConfiguration;

  import cn.linkpower.service.IMessageProductService;

  @Service

  public class MessageProductServiceImpl implements IMessageProductService {

  @Autowired

  private RabbitTemplate rabbitTemplate;

  @Override

  public void sendMessage(String msg) {

  rabbitTemplate.convertAndSend(MQConfiguration.EXCHANGE,

  MQConfiguration.ROUTING_KEY,

  msg);

  }

  }

  2.5、创建控制器

  @RequestMapping("/sendMsg2")

  @ResponseBody

  public String sendMsg2(HttpServletRequest request){

  String msg = request.getParameter("msg");

  log.info("sendMsg --- msg--"+String.valueOf(msg));

  messageProductServiceImpl.sendMessage(msg);

  return "send ok";

  }

  三、测试

  控制台输出:

  


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: