Springboot2.X——springboot整合rabbitmq

心不动则不痛 提交于 2019-12-15 08:45:22

一、整合前的准备

1.1、安装windows/linux系统版本的rabbitmq。
1.2、此次整合使用eclipse

二、springboot整合rabbitmq

2.1、pom依赖引入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
 </dependency>

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
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";
	}

三、测试

http://localhost/sendMsg2?msg=66666666

控制台输出:
在这里插入图片描述

四、demo下载

springboot整合rabbitmq 码云下载
springboot整合rabbitmq github下载

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!