如果提到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的微信公眾號,我會將我的文章推送給您,並和您一起分享我日常閱讀過的優質文章。