欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Springboot2.X——springboot整合rabbitmq

程序员文章站 2022-07-07 11:35:10
...

一、整合前的准备

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

控制台输出:
Springboot2.X——springboot整合rabbitmq

四、demo下载

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

相关标签: springboot rabbitmq