07 springboot整合rabbitmq

本節(jié)將闡述在springboot中整合rabbitmq做修。

1、前提約束

2、操作步驟

  • 創(chuàng)建一個(gè)springboot項(xiàng)目钙蒙,作者創(chuàng)建的項(xiàng)目路徑是net.wanho.rabbitmq.springbootrabbitmq
    http://www.reibang.com/p/de979f53ad80
  • 加入rabbitmq依賴(lài)
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring‐boot‐starter‐amqp</artifactId>
</dependency>
  • 修改application.properties
server.port=8088
spring.application.name=boot-rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5762
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  • 在主啟動(dòng)類(lèi)同級(jí)目錄下創(chuàng)建config包苹威,在該包下創(chuàng)建配置類(lèi)RabbitConfig.java
package net.wanho.rabbitmq.springbootrabbitmq.config;

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitmqConfig {
    final String email = "queue_email";
    final String sms = "queue_sms";
    final String exchange_topics = "exchange_topics";

    @Bean(exchange_topics)
    public Exchange exchange_topics() {
        return ExchangeBuilder.topicExchange(exchange_topics).durable(true).build();
    }

    @Bean(sms)
    public Queue sms() {
        Queue queue = new Queue(sms);
        return queue;
    }

    @Bean(email)
    public Queue email() {
        Queue queue = new Queue(email);
        return queue;
    }

    @Bean
    public Binding bindingSms(@Qualifier(sms) Queue queue, @Qualifier(exchange_topics) Exchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with("inform.#.sms.#").noargs();
    }

    @Bean
    public Binding bindingEmail(@Qualifier(email) Queue queue, @Qualifier(exchange_topics) Exchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with("inform.#.email.#").noargs();
    }
}
  • 在主啟動(dòng)類(lèi)同級(jí)目錄下創(chuàng)建controller包,在該包下創(chuàng)建配置類(lèi)ProducerController.java
package net.wanho.rabbitmq.springbootrabbitmq.controller;

import net.wanho.rabbitmq.springbootrabbitmq.config.RabbitmqConfig;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class ProducerController {
    @Resource
    RabbitTemplate rabbitTemplate;

    @GetMapping("/rabbitmq/producer/sms")
    public String sendSms() {
        String message = "sms to user";
        rabbitTemplate.convertAndSend(RabbitmqConfig.exchange_topics, "inform.sms.email", message);
        System.out.println("Send Message is:'" + message + "'");
        return "send success";
    }

    @GetMapping("/rabbitmq/producer/email")
    public String sendEmail() {
        String message = "email to user";
        rabbitTemplate.convertAndSend(RabbitmqConfig.exchange_topics, "inform.sms.email", message);
        System.out.println("Send Message is:'" + message + "'");
        return "send success";
    }
}
  • 在主啟動(dòng)類(lèi)同級(jí)目錄下創(chuàng)建listener包办悟,在該包下創(chuàng)建配置類(lèi)ReceiveListener.java
package net.wanho.rabbitmq.springbootrabbitmq.listener;

import com.rabbitmq.client.Channel;
import net.wanho.rabbitmq.springbootrabbitmq.config.RabbitmqConfig;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class ReceiveListener {
    @RabbitListener(queues = {RabbitmqConfig.email})
    public void receive_email(String msg, Message message, Channel channel) {
        System.out.println(msg);
    }

    @RabbitListener(queues = {RabbitmqConfig.sms})
    public void receive_sms(String msg, Message message, Channel channel) {
        System.out.println(msg);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末病蛉,一起剝皮案震驚了整個(gè)濱河市炫加,隨后出現(xiàn)的幾起案子瑰煎,更是在濱河造成了極大的恐慌,老刑警劉巖琢感,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丢间,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡驹针,警方通過(guò)查閱死者的電腦和手機(jī)烘挫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)柬甥,“玉大人饮六,你說(shuō)我怎么就攤上這事】疗眩” “怎么了卤橄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)臂外。 經(jīng)常有香客問(wèn)我窟扑,道長(zhǎng),這世上最難降的妖魔是什么漏健? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任嚎货,我火速辦了婚禮,結(jié)果婚禮上蔫浆,老公的妹妹穿的比我還像新娘殖属。我一直安慰自己,他們只是感情好瓦盛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布洗显。 她就那樣靜靜地躺著,像睡著了一般原环。 火紅的嫁衣襯著肌膚如雪挠唆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天嘱吗,我揣著相機(jī)與錄音玄组,去河邊找鬼。 笑死柜与,一個(gè)胖子當(dāng)著我的面吹牛巧勤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弄匕,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颅悉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了迁匠?” 一聲冷哼從身側(cè)響起剩瓶,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤驹溃,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后延曙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體豌鹤,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年枝缔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了布疙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡愿卸,死狀恐怖灵临,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情趴荸,我是刑警寧澤儒溉,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站发钝,受9級(jí)特大地震影響顿涣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酝豪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一涛碑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寓调,春花似錦锌唾、人聲如沸锄码。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)滋捶。三九已至痛悯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間重窟,已是汗流浹背载萌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巡扇,地道東北人扭仁。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像厅翔,于是被迫代替她去往敵國(guó)和親乖坠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 消息隊(duì)列目前流行的有KafKa刀闷、RabbitMQ熊泵、ActiveMQ等仰迁,它們的誕生無(wú)非不是為了解決消息的分布式消費(fèi),...
    恒宇少年閱讀 12,467評(píng)論 24 101
  • 1、安裝 1.1卒蘸、Erlang: Erlang下載地址雌隅,下載后安裝即可。 1.2缸沃、RabbitMQ安裝 Rabbi...
    木石前盟Caychen閱讀 888評(píng)論 0 12
  • 什么叫消息隊(duì)列澄步? 消息(Message)是指在應(yīng)用間傳送的數(shù)據(jù)。消息可以非常簡(jiǎn)單和泌,比如只包含文本字符串村缸,也可以更復(fù)...
    Agile_dev閱讀 2,373評(píng)論 0 24
  • 關(guān)于消息隊(duì)列,從前年開(kāi)始斷斷續(xù)續(xù)看了些資料武氓,想寫(xiě)很久了梯皿,但一直沒(méi)騰出空,近來(lái)分別碰到幾個(gè)朋友聊這塊的技術(shù)選型县恕,是時(shí)...
    中v中閱讀 1,970評(píng)論 0 20
  • 我用三生守候东羹, 終換來(lái)你一世情緣, 在我背起行囊浪跡天涯的時(shí)候忠烛, 你用溫暖的擁抱属提, 融化了我漠然的心。 在戈壁灘美尸,...
    無(wú)用齋主人閱讀 275評(píng)論 0 1