SpringBoot整合RabbitMQ

RabbitMQ是開(kāi)源消息隊(duì)列系統(tǒng),用erlang語(yǔ)言開(kāi)發(fā)烤礁。如果不了解可以查看官網(wǎng)http://www.rabbitmq.com/

這篇文章介紹一個(gè)springboot簡(jiǎn)單整合RabbitMQ讼积。

1.安裝rabbitmq,自行百度即可脚仔,方法很多勤众。

2.啟動(dòng)rabbitmq,成功如下圖:

image

可以訪問(wèn)http://localhost:15672/查看管理頁(yè)面

image

新建項(xiàng)目鲤脏,pom文件加入依賴(lài)们颜,完整pom如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dalaoyang</groupId>
    <artifactId>springboot_rabbitmq</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot_rabbitmq</name>
    <description>springboot_rabbitmq</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

新建一個(gè)消息發(fā)送者Sender,使用AmqpTemplate將消息發(fā)送到消息隊(duì)列message中去凑兰。代碼如下:

package com.dalaoyang.sender;

import org.apache.log4j.Logger;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author dalaoyang
 * @Description
 * @project springboot_learn
 * @package com.dalaoyang.send
 * @email yangyang@dalaoyang.cn
 * @date 2018/4/25
 */
@Component
public class Sender {
    Logger logger = Logger.getLogger(Sender.class);

    @Autowired
    private AmqpTemplate amqpTemplate;

    public String send(){
        String context = "簡(jiǎn)單消息發(fā)送";
        logger.info("簡(jiǎn)單消息發(fā)送時(shí)間:"+new Date());
        amqpTemplate.convertAndSend("message", context);
        return "發(fā)送成功";
    }
}

創(chuàng)建消息接收者Receiver掌桩,使用注解@RabbitListener(queues = "message")來(lái)監(jiān)聽(tīng)message的消息隊(duì)列@RabbitHandler來(lái)實(shí)現(xiàn)具體消費(fèi)。

package com.dalaoyang.receiver;

import org.apache.log4j.Logger;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author dalaoyang
 * @Description
 * @project springboot_learn
 * @package com.dalaoyang.receiver
 * @email yangyang@dalaoyang.cn
 * @date 2018/4/25
 */
@Component
@RabbitListener(queues = "message")
public class Receiver {
    Logger logger = Logger.getLogger(Receiver.class);

    @RabbitHandler
    public void process(String Str) {
        logger.info("接收消息:"+Str);
        logger.info("接收消息時(shí)間:"+new Date());
    }
}

然后看一下配置信息姑食,因?yàn)槭呛?jiǎn)單整合波岛,所以只配置了端口和rabbitmq的信息,如下:

##端口號(hào)
server.port=8888

##rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

創(chuàng)建一個(gè)controller音半,這里僅用來(lái)測(cè)試则拷,代碼如下:

package com.dalaoyang.controller;

import com.dalaoyang.sender.Sender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author dalaoyang
 * @Description
 * @project springboot_learn
 * @package com.dalaoyang.controller
 * @email yangyang@dalaoyang.cn
 * @date 2018/4/25
 */
@RestController
public class TestController {

    @Autowired
    private Sender sender;

    @GetMapping("hello")
    public String helloTest(){
        sender.send();
        return "success";
    }

}

啟動(dòng)項(xiàng)目贡蓖,訪問(wèn)http://localhost:8888/hello然后觀看控制臺(tái)可以看到消息已經(jīng)發(fā)送成功。

image

源碼下載 :大老楊碼云

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煌茬,一起剝皮案震驚了整個(gè)濱河市斥铺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坛善,老刑警劉巖晾蜘,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異眠屎,居然都是意外死亡剔交,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)改衩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)岖常,“玉大人,你說(shuō)我怎么就攤上這事葫督〗甙埃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵橄镜,是天一觀的道長(zhǎng)偎快。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蛉鹿,這世上最難降的妖魔是什么滨砍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮妖异,結(jié)果婚禮上惋戏,老公的妹妹穿的比我還像新娘。我一直安慰自己他膳,他們只是感情好响逢,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著棕孙,像睡著了一般舔亭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蟀俊,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天钦铺,我揣著相機(jī)與錄音,去河邊找鬼肢预。 笑死矛洞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的烫映。 我是一名探鬼主播沼本,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼噩峦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了抽兆?” 一聲冷哼從身側(cè)響起识补,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辫红,沒(méi)想到半個(gè)月后凭涂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厉熟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年导盅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揍瑟。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乍炉,靈堂內(nèi)的尸體忽然破棺而出绢片,到底是詐尸還是另有隱情,我是刑警寧澤岛琼,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布底循,位于F島的核電站,受9級(jí)特大地震影響槐瑞,放射性物質(zhì)發(fā)生泄漏熙涤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一困檩、第九天 我趴在偏房一處隱蔽的房頂上張望祠挫。 院中可真熱鬧,春花似錦悼沿、人聲如沸等舔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慌植。三九已至,卻和暖如春义郑,著一層夾襖步出監(jiān)牢的瞬間蝶柿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工非驮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留交汤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓院尔,卻偏偏與公主長(zhǎng)得像蜻展,于是被迫代替她去往敵國(guó)和親喉誊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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