SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
来源:互联网 发布:磁金融 知乎 编辑:程序博客网 时间:2024/06/08 11:19
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。
转载请标明出处:
http://blog.csdn.net/forezp/article/details/71023692
本文出自方志朋的博客
这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息。
准备工作
- 15min
- IDEA
- maven 3.0
在开始构建项目之前,机器需要安装rabbitmq,你可以去官网下载,http://www.rabbitmq.com/download.html ,如果你是用的Mac(程序员都应该用mac吧),你可以这样下载:
- 1
- 2
安装完成后开启服务器:
- 1
开启服务器成功,你可以看到以下信息:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
构建工程
构架一个SpringBoot工程,其pom文件依赖加上spring-boot-starter-amqp的起步依赖:
- 1
- 2
- 3
- 4
- 5
创建消息接收者
在任何的消息队列程序中,你需要创建一个消息接收者,用于响应发送的消息。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
消息接收者是一个简单的POJO类,它定义了一个方法去接收消息,当你注册它去接收消息,你可以给它取任何的名字。其中,它有CountDownLatch这样的一个类,它是用于告诉发送者消息已经收到了,你不需要在应用程序中具体实现它,只需要latch.countDown()就行了。
创建消息监听,并发送一条消息
在spring程序中,RabbitTemplate提供了发送消息和接收消息的所有方法。你只需简单的配置下就行了:
- 需要一个消息监听容器
- 声明一个quene,一个exchange,并且绑定它们
- 一个组件去发送消息
代码清单如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
创建一个测试方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
启动程序,你会发现控制台打印:
- 1
- 2
- 3
总结
恭喜!你刚才已经学会了如何通过spring raabitmq去构建一个消息发送和订阅的程序。 这仅仅是一个好的开始,你可以通过spring-rabbitmq做更多的事,点击这里。
源码下载:https://github.com/forezp/SpringBootLearning
参考资料
https://spring.io/guides/gs/messaging-rabbitmq/
优秀文章推荐:
- 更多springboot 教程:springBoot非官方教程 | 文章汇总
- 更多springcoud 教程:史上最简单的 SpringCloud 教程 | 文章汇总
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
- SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA
- SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- SpringBoot非官方教程 | 第八篇:springboot整合mongodb
- SpringBoot非官方教程 | 第九篇: springboot整合Redis
- SpringBoot非官方教程 | 第二十四篇: springboot整合docker
- SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA
- SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- SpringBoot非官方教程 | 第八篇:springboot整合mongodb
- SpringBoot非官方教程 | 第九篇: springboot整合Redis
- SpringBoot非官方教程 | 第二十四篇: springboot整合docker
- SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- css——background背景属性
- 文章标题
- 机器学习高斯混合模型(后篇):GMM求解完整代码实现
- kubernetes1.8 源码分析之资源调度
- 基础类型,进制码制,变量1127,显隐式
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
- RAC中常见的宏
- Latex——natbib宏包使用说明中文版
- ubuntu下安装scrapy python3
- 锐盾IP KVM集中管理平台ADS-810
- MATLAB—反向传播
- Anaconda2 安装过程中出现的ascii编码错误解决方案
- VS报错 error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义 链接报错: 错误 33 error LNK2005: _DllMai
- 电商错误归档