前面两篇文章:
windows下RabbitMQ的使用(1)——下载与安装
windows下RabbitMQ的使用(2)——安装插件与创建队列
RabbitMQ的版本号是4.3.0。
在整合之前,需要知道一些名词和工作模式。
RabbitMQ 就像是一个超级邮差兔,不过它不送胡萝卜,专门传递消息!想象一下:
• 🏢交换机(Exchange):邮局的分拣中心,负责把信件分到正确的路线
• 📮队列(Queue):你的专属邮箱,消息就在这里等你来取
• 🏷️路由键(Routing Key):信封上的地址标签
• 📦消息(Message):你要传递的包裹(可以是任何数据)
这只“兔子”有四种工作模式:
- Hello World模式:简单直接,像扔飞盘一样
- Work Queues 模式:多个工人抢活干,卷起来了!
- Publish/Subscribe 模式:广播模式,一人说话全村听见
- 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