Springboot 实践(13)spring boot 整合RabbitMq

前文讲解了RabbitMQ的下载和安装,此文讲解springboot整合RabbitMq实现消息的发送和消费。

1、创建web project项目,名称为"SpringbootAction-RabbitMQ"

2、修改pom.xml文件,添加amqp使用jar包

<!-- RabbitMQ -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.amqp</groupId>

<artifactId>spring-rabbit-test</artifactId>

<scope>test</scope>

</dependency>

3、修改application.xml,配置服务器RabbitMQ服务器

spring:

rabbitmq: #配置RabbitMQ

host: 127.0.0.1

port: 5672

username: guest

password: guest

virtual-host: /

4、添加RabbitMQ配置文件

@Configuration//Rabbit配置类

public class RabbitConfig {

private final String EXCHANGE_NAME = "boot_topic_exchange";

private final String QUEUE_NAME = "boot_queue";

//创建交换机

@Bean("bootExchange")

public Exchange getExchange()

{

return ExchangeBuilder

.topicExchange(EXCHANGE_NAME)//交换机类型 ;参数为名字

.durable(true)//是否持久化,true即存到磁盘,false只在内存上

.build();

}

//创建队列

@Bean("bootQueue")

public Queue getMessageQueue()

{

return new Queue(QUEUE_NAME);

}

//交换机绑定队列

@Bean

//@Qualifier注解,使用名称装配进行使用

public Binding bindMessageQueue(@Qualifier("bootExchange") Exchange exchange, @Qualifier("bootQueue") Queue queue)

{

return BindingBuilder

.bind(queue)

.to(exchange)

.with("#.message.#")

.noargs();

}

}

5、添加producer生产者文件

@RestController

public class TestProducer {

//注入RabbitTemplate工具类(rabbit内部的,可以发送消息)

@Autowired

private RabbitTemplate rabbitTemplate;

@GetMapping("/sendMessage")

public void testSendMessage()

{

/**

* 发送消息

* 参数1:交换机

* 参数2:路由键

* 参数3:要发送的消息

*/

rabbitTemplate.++convertAndSend++("boot_topic_exchange","message","双十二开始了!");

}

}

6、添加consumer消费者文件

//消费者

@Component

public class Consumer {

//监听队列

@RabbitListener(queues = "boot_queue")

public void listenMessage(Message message)

{

System.out.println("接收消息:"+message);

}

}

7、测试

启动RabbitMQ服务器,启动后界面如下图所示:

启动SpringbootAction-RabbitMQ项目,项目启动后,在浏览器中输入http://localhost:2885/swagger-ui.html,界面如下:

测试消息生产者和消费者

选择"test-producer",点击"Excute",执行producer

观察项目后台console,显示如下:

从上图看,producer可以正常发布信息,同时consumer也正常消费了信息。

相关推荐
handsomestWei33 分钟前
springboot使用tomcat浅析
spring boot·后端·tomcat
杰九2 小时前
【全栈】SprintBoot+vue3迷你商城(10)
开发语言·前端·javascript·vue.js·spring boot
栗豆包3 小时前
w179基于Java Web的流浪宠物管理系统的设计与实现
java·开发语言·spring boot·后端·spring·宠物
伟大的python程序员3 小时前
thinkphp6+swoole使用rabbitMq队列
后端·rabbitmq·swoole
小韩学长yyds5 小时前
解锁跨平台通信:Netty、Redis、MQ和WebSocket的奇妙融合
java·spring boot·redis·websocket
蔚一6 小时前
安装最小化的CentOS7后,执行yum命令报错Could not resolve host mirrorlist.centos.org; 未知的错误
java·linux·spring boot·后端·centos·intellij idea
十二同学啊8 小时前
Spring Boot WebMvcConfigurer:定制你的 Web 应用
前端·spring boot·后端
Onlooker1299 小时前
RabbitMQ5-死信队列
rabbitmq
景天科技苑10 小时前
【Prometheus】RabbitMQ安装部署,如何通过prometheus监控RabbitMQ
消息队列·rabbitmq·prometheus·rabbitmq安装·rabbitmq配置
高克莱14 小时前
【Java实现 通过Easy Excel完成对excel文本数据的读写】
java·spring boot·excel