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实现类中这样写
以上两种方式都是等效的,具体看个人偏好了。
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!如果您想持续关注我的文章,请扫描二维码,关注JackieZheng的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。
相关文章
- Spring学习笔记(十八)——spring日志框架的配置和使用
- 简单介绍一下spring bean的生命周期_Spring bean的生命周期
- Spring AOP面向切面编程
- MyBatis——【第三章】管理关系映射及spring集成
- 微服务组件---- Spring Cloud Alibaba 链路追踪 skywalking 详解
- Spring的事务我是这么玩的
- spring boot项目中handlerinterceptor autowired 为空解决办法
- rabbitMQ结合spring-boot使用(2).md
- 重磅!Spring Boot 3.0 正式发布,这些新特性真的强!!
- [Spring Cloud]Stream组件介绍
- Spring Boot集成Disruptor
- Spring Boot 2.6 正式发布:循环依赖默认禁止、增加SameSite属性...
- Spring Cloud Config 与其他组件集成(二)
- Spring Cloud Security与Spring Cloud的集成示例
- Spring Cloud Security配置JWT和OAuth2的集成实现授权管理(一)
- 【愚公系列】2023年04月 Java教学课程 134-Spring框架的事务
- Spring Cloud Task 任务执行-通过调用 REST API 启动任务
- webseivice中使用cxf集成spring简单配置详解架构师
- spring+activemq的配置详解编程语言
- Redis集群集成Spring在Java中的使用详解编程语言
- Activiti工作流与spring集成详解编程语言
- Spring Boot 核心配置文件 bootstrap & application 详解。编程语言
- Spring Boot(二十):使用spring-boot-admin对spring-boot服务进行监控详解编程语言
- spring Boot(十九):使用Spring Boot Actuator监控应用详解编程语言
- Spring Boot(五):spring data jpa的使用详解编程语言
- spring boot集成mybatis 自动生成实体类和mapper文件、Dao层详解编程语言