springboot整合rabbitmq(Springboot2.X)

一、整合前的准备

创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站建设、高端网站设计全网营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站建设、成都网站设计、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

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

}

三、测试

控制台输出:

springboot整合rabbitmq(Springboot2.X)

当前名称:springboot整合rabbitmq(Springboot2.X)
转载来于:http://azwzsj.com/article/gddcoc.html