Spring集成RabbitMQ-使用RabbitMQ更方便
如果提到Spring,你脑海中对他的印象还停留在SSH三大框架之一,那或许你该好好重新认识这个家伙。
在IT技术日新月异的今天,他还能让你忘不了并与他朝夕相处,他,肯定有自己的绝活。如今他早已经不是孤军奋战,而是形成了一个大家族,或许你知道Spring Boot,Spring Cloud,Spring Datad等等。
Spring给我的感觉就是好用,易上手,尤其有了更加强大的注解使用之后,可以抛去繁琐的XML配置,我们有更多的精力集中在自己的业务上、代码上。而Spring AMQP就是这样的一个集成了RabbitMQ的好用的工具库,能够很好的实现收发消息。
从这篇开始我们将陆续介绍Spring如何集成RabbitMQ,又是如何在Spring下使用RabbitMQ的。
和原生的RabbitMQ区别在哪
在《RabbitMQ入门》系列中,我们只用到了amqp-client这个jar包,包括新建Connection、Channel以及Consumer等。 但是我们在Spring下集成,还需要引入新的jar包依赖。
- 这里用的是最新的spring-rabbit版本2.0.0.M5
- 最新的spring-rabbit要求Spring Framework的最低版本为5.0.x,amqp-client的最低版本为4.1.x(对于一些新特性要求这样的最低版本,对于大部分功能来说,较低的版本也能正常工作)
添加好这些依赖后,编译项目出现下面的错误
从错误信息可以看出是中央仓库中没有Bismuth-M3这个依赖,所以需要添加一个Repository能够提供这个依赖的。添加如下信息到pom.xml中,问题解决。
一个简单到爆的HelloWorld实例
有了上面的依赖,我们先抛开XML配置以及注解配置,直接就可以写一个Spring集成RabbitMQ的HelloWorld。
没错,就是这么几行代码,就可以实现发送消息和接收消息了。
- 新建了一个连接工厂,在其构造函数中指定了hostname。当然了CachingConnectFactory还提供了其他重载形式的构造函数,可以赋值hostname以及port等。
- AmqpAdmin对象负责新建Exchange、Queue以及绑定等工作。
- AmqpTemplate负责收发消息。
相比我们在《RabbitMQ入门》系列中,需要新建Connection,还要创建Channel以及Consumer,完成绑定等操作,这种方式更加简洁。 启动代码后,我们可以看到一个名为myqueue的队列已经存在了。
XML配置版本和注解配置版本
XML配置 如果非要使用你熟悉的XML模式,也不是不行。新建rabbit-context.xml文件
这时候在实现类中这样写就ok了
基于注解的配置 使用注解我们不用看让人眼花缭乱的xml配置了。我们需要声明一个配置类,如下
请点击此处输入图片描述 这时候在java实现类中这样写
以上两种方式都是等效的,具体看个人偏好了。
- 洛谷P1138 第k小整数
- Leetcode-Easy 796. Rotate String
- 2017.10.23解题报告
- Leetcode-Easy 461.Hamming Distance
- 洛谷P1439 最长公共子序列(LCS问题)
- Leetcode-Easy 575. Distribute Candies
- 洛谷P2115 [USACO14MAR]破坏Sabotage
- 修改nw.js的exe文件使其请求管理员权限
- Leetcode-Easy 728. Self Dividing Numbers
- Leetcode-Easy 412. Fizz Buzz
- 洛谷P2678 跳石头
- 洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom
- 洛谷P1908 逆序对(归并排序)
- 洛谷P1137 旅行计划
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 破解Mariadb5.5密码
- redis学习(七)
- 自己实现一个SAP WebClient UI Repository Information System
- ABAP,Java和JavaScript类的构造函数使用的一些陷阱
- Spring Security如何优雅的增加OAuth2协议授权模式
- 如何将自定义XML视图注入SAP Fiori Elements应用
- SAP UI5控件ID的生成逻辑原理解析
- 如何自定义SAP Spartacus店铺的界面颜色风格
- 如何自定义SAP Spartacus店铺的购物车图表css风格
- 数据库PostrageSQL-从源代码安装
- Django的中间件
- WPF 使用 Skia 绘制 WriteableBitmap 图片
- dotnet 在 UOS 国产系统上使用 MonoDevelop 创建 GTK 全平台带界面应用
- dotnet 在 UOS 国产系统上安装 MonoDevelop 开发工具
- 使用SAP Spartacus快速创建一个电商店铺网站