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
控制台输出:
四、demo下载
上一篇: ansible 工作原理以及使用详解
下一篇: linux创建用户并设置密码
推荐阅读
-
SpringBoot整合MongoDB的步骤详解
-
SpringBoot整合SpringCloud搭建分布式应用
-
SpringBoot2.x整合Shiro出现cors跨域问题(踩坑记录)
-
SpringBoot2 整合Nacos组件,环境搭建和入门案例详解
-
SpringBoot 2.x 开发案例之 Shiro 整合 Redis
-
MyEclipse下SpringBoot+JSP整合过程及踩坑
-
SpringBoot无废话入门04:MyBatis整合
-
Springboot整合微信小程序实现登录与增删改查
-
springboot整合websocket后运行测试类报错:javax.websocket.server.ServerContainer not available
-
springboot整合jsp,实现公交车站路线图