news 2026/9/26 10:18:02

windows下RabbitMQ的使用(3)——Spring Boot集成RabbitMQ(Hello World模式)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
windows下RabbitMQ的使用(3)——Spring Boot集成RabbitMQ(Hello World模式)

前面两篇文章:
windows下RabbitMQ的使用(1)——下载与安装

windows下RabbitMQ的使用(2)——安装插件与创建队列

RabbitMQ的版本号是4.3.0。
在整合之前,需要知道一些名词和工作模式。

RabbitMQ 就像是一个超级邮差兔,不过它不送胡萝卜,专门传递消息!想象一下:
• 🏢交换机(Exchange):邮局的分拣中心,负责把信件分到正确的路线
• 📮队列(Queue):你的专属邮箱,消息就在这里等你来取
• 🏷️路由键(Routing Key):信封上的地址标签
• 📦消息(Message):你要传递的包裹(可以是任何数据)

这只“兔子”有四种工作模式:

  1. Hello World模式:简单直接,像扔飞盘一样
  2. Work Queues 模式:多个工人抢活干,卷起来了!
  3. Publish/Subscribe 模式:广播模式,一人说话全村听见
  4. Routing & Topics 模式:智能分发,精准投喂

本文介绍一下如何使用Spring Boot集成RabbitMQ。
IDEA版本: 2026.1
JDK:17
Spring Boot:3.x
RabbitMQ:4.3.0

先启动RabbitMQ,

注意,本文使用一个Spring Boot项目,同时创建生产者和消费者,有的项目会用不同的Spring Boot项目创建不同的角色,本文为了简单起见,使用一个Spring Boot项目,同时创建生产者和消费者。

1.创建Spring Boot项目

打开IDEA,点击“文件”—>“新建”——>“项目”

这里选“Spring Boot”类型,然后输入项目的名称,语言选“Java”,构建类型选“Maven”,版本都选17。
打包方式选“Jar”,配置文件选“YAML”,如果没有这个选项问题不大, 后期可以自己创建,或者你使用“Properties”方式也行。

这里的Spring Boot版本号写3.x版本,然后往下拉,找到Web选项,选择“Spring Web”,然后点击创建
(注意:要保证maven配置正确)

创建完毕后,默认如下:

2.构建过程

2.1 增加依赖

第一步需要添加RabbitMQ的相关依赖

<!-- SpringBoot 整合 RabbitMQ 核心启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>

spring-boot-starter-amqp是Spring Boot 连接 RabbitMQ 的官方工具。可以快速在 Spring Boot 中使用 RabbitMQ,提供自动配置和注解支持。

我们打开pom.xml文件,将上面的依赖填写上,填写上以后,可以点击下图的“1”处。
或者点击“A”,再点击“B”处,刷新一下,更新依赖。

我的pom.xml文件参考如下:

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.14</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.guo</groupId><artifactId>RabbitMQ-demo1</artifactId><version>0.0.1-SNAPSHOT</version><name>RabbitMQ-demo1</name><description>RabbitMQ-demo1</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- SpringBoot 整合 RabbitMQ 核心启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.2 修改配置文件

修改application.yaml文件,增加下面的配置

#RabbitMQ 相关配置rabbitmq:host:localhostport:5672username:guestpassword:guest

增加完后,配置文件如下所示

2.3 增加配置类

我们在创建一个config文件夹,用来存放配置类
右击文件夹名字,选择“新建—>软件包”

输入的内容参考下面

com.guo.config

然后按回车。

然后,继续右击“config”文件夹,选择“新建—>Java类”

类名输入 RabbitConfig,然后按下回车。


参考代码如下:

importorg.springframework.amqp.core.Queue;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassRabbitConfig{// 统一队列名publicstaticfinalStringHELLO_QUEUE="testMQ";@BeanpublicQueuehelloQueue(){// 简单持久化关闭、hello 标准模式returnnewQueue(HELLO_QUEUE,false);}}


这里需要注意的是,队列的名字是testMQ,这对应我们前面文章中创建的队列的名字,如果你使用RabbitMQ创建的队列不是这个名字,请一定要统一队列的名字。

2.4 增加消费者

需要先增加一个文件夹,名字是consumer,跟刚才的config是同级,所以,参考下图,右击文件夹,点击“新建”—>“软件包”

com.guo.consumer

输入后,按回车确定。

右击consumer文件夹,选择“新建”—>“Java类”

这里消费者的类名为:HelloConsumer,输入后按回车。

参考代码如下:

importcom.guo.config.RabbitConfig;importorg.springframework.amqp.rabbit.annotation.RabbitListener;importorg.springframework.stereotype.Component;@ComponentpublicclassHelloConsumer{@RabbitListener(queues=RabbitConfig.HELLO_QUEUE)publicvoidreceive(Stringmessage){System.out.println("【消费者收到】:"+message);}}

2.5 修改启动类

打开启动类,在上面增加一行注解

@ComponentScan(basePackages="com.guo")// 扫描com.guo下的所有包

注意,com.guo改成你实际的包名。

然后点击小三角,点击“调试xxx” 来启动主程序。
这样就能启动消费者来进行监听了。

2.6 修改测试类

打开默认的测试类,增加下面的代码

@AutowiredprivateRabbitTemplaterabbitTemplate;@TestvoidsendHelloMsg()throwsInterruptedException{Stringmsg="Hello World RabbitMQ";rabbitTemplate.convertAndSend(RabbitConfig.HELLO_QUEUE,msg);System.out.println("【测试生产者发送完成】:"+msg);}

增加完后,代码如下:

然后,点击运行测试方法“sendHelloMsg()”

运行测试类后,可以在测试类的控制台看到下面发送提示。

2.7 查看测试效果

根据上面的图,我们点击上图中绿色的部分, 切换到主程序的控制台,就可以看到在主程序中的消费者收到了消息。


本文参考代码:

(1) 百度网盘
通过网盘分享的文件:RabbitMQ-demo1.zip
链接: https://pan.baidu.com/s/1Rj2o8EpGG5pTplsF1lbrfg?pwd=mf6d 提取码: mf6d

(2)夸克网盘:
我用夸克网盘给你分享了「RabbitMQ-demo1.zip」,点击链接或复制整段内容,打开「夸克APP」即可获取。
/62ed3b5dfO😕
链接:https://pan.quark.cn/s/7e408612f087?pwd=feYM
提取码:feYM

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 10:17:54

AI Agent 面试题 238:System Prompt的版本管理和A/B测试策略

&#x1f525; AI Agent 面试题 238&#xff1a;System Prompt的版本管理和A/B测试策略摘要&#xff1a;本文深入解析了「System Prompt的版本管理和A/B测试策略」这一 AI Agent 领域的核心面试题。文章从 System Prompt 工程 的基本概念出发&#xff0c;系统性地剖析了 版本管…

作者头像 李华
网站建设 2026/9/26 10:17:42

多门店串口设备改造:IoT网关数量与部署位置规划方法

多门店的串口设备改造&#xff0c;听起来是个不大不小的项目&#xff0c;但真正落地时最容易在同一个地方翻车&#xff1a;IoT 网关数量算不准&#xff0c;部署位置定不下来。尤其是同时涉及电表、收银机、PLC、门禁这类老旧串口设备时&#xff0c;很多团队把大量精力花在协议解…

作者头像 李华
网站建设 2026/9/26 10:17:42

Windows 11 25H2虚拟机去虚拟化:ACPI伪造与SCSI控制器深度伪装

1. 项目概述&#xff1a;这不是“绕过检测”&#xff0c;而是对虚拟化底层逻辑的一次系统性解构“VMware 25H2 去虚拟化”这个标题&#xff0c;乍看像极了某些论坛里流传的“跳过Win11 25H2安装限制”的偏门技巧——但如果你真这么理解&#xff0c;就完全误判了它的技术分量和工…

作者头像 李华
网站建设 2026/9/26 10:15:43

ROC曲线与AUC:二分类模型评估的核心原理与工程实践

1. 为什么ROC与AUC是模型评估绕不开的硬核指标你训练完一个二分类模型&#xff0c;准确率92%&#xff0c;看起来很美——但如果你的测试集里90%都是负样本&#xff0c;模型干脆全预测为负&#xff0c;准确率照样是90%。这时候准确率就彻底失灵了。我第一次在信贷风控项目里踩这…

作者头像 李华
网站建设 2026/9/26 10:15:05

VOC垃圾数据集转YOLO格式:从XML标注到darknet训练全攻略

简介&#xff1a;面向目标检测与垃圾分类识别任务的Pascal VOC格式数据集&#xff0c;可直接用于YOLOv3/v4/v5及Darknet框架训练。数据包共44891个文件&#xff0c;压缩后约791.41MB&#xff0c;核心包含14963张jpg原图、14963个xml标注文件及14965个txt文本文件&#xff0c;其…

作者头像 李华