最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot與rabbitmq的結(jié)合的示例

 更新時間:2018年03月26日 16:50:12   作者:數(shù)齊  
這篇文章主要介紹了SpringBoot與rabbitmq的結(jié)合的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

消息中間件對于我們系統(tǒng)之間的解耦合,消峰等都有極大的幫助。spring boot 也集成了此部分的內(nèi)容,集成最為容易的是rabbitmq。今天我們就以rabbitmq為例說明。

老規(guī)矩,先看下pom

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

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

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

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

AMQP,即Advanced Message Queuing Protocol,一個提供統(tǒng)一消息服務的應用層標準高級消息隊列協(xié)議,是應用層協(xié)議的一個開放標準,為面向消息的中間件設(shè)計。基于此協(xié)議的客戶端與消息中間件可傳遞消息,并不受客戶端/中間件不同產(chǎn)品,不同的開發(fā)語言等條件的限制,spring-boot-starter-amqp引入的就是rabbitmq。有個前提,你的機子上要首先先安裝rabbitmq的server,然后執(zhí)行 rabbitmq-server server就啟動了。啟動后,我們就可以配置我們的客戶端程序了。首先看下我們的配置文件

spring.application.name: spirng-boot-rabbitmq

spring.rabbitmq.host: 127.0.0.1
spring.rabbitmq.port: 5672
spring.rabbitmq.username: guest
spring.rabbitmq.password: guest

配置了服務器的IP,端口,用戶名,密碼等基礎(chǔ)信息,保證我們能連上服務器。

增加一個Rabbitmq的配置類

package com.shuqi;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitConfig {
  @Bean
  public Queue Queue() {
    return new Queue("hello");
  }
}

創(chuàng)建了一個名稱叫做hello的隊列,然后producer可以往hello的隊列里放數(shù)據(jù),consumer可以從hello的隊列里消費數(shù)據(jù)??聪聀roducer的處理程序

package com.shuqi.controller;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

  @Autowired
  private AmqpTemplate rabbitTemplate;

  @RequestMapping("/hello")
  public String hello(@RequestParam String name){
    rabbitTemplate.convertAndSend("hello","hello "+name);
    return "消息發(fā)送成功";
  }

}

通過controller生產(chǎn)消息,通過AmqpTemplate發(fā)送消息。有了生產(chǎn)者我們看下消費者

package com.shuqi.consumer;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
@RabbitListener(queues = "hello")
@Slf4j
public class HelloConsumer {

  @RabbitHandler
  public void process(String hello) {
    log.info("接收到的消息:message:{}",hello);
  }
}

@RabbitListener(queues = "hello") 表示是一個Rabbitmq的監(jiān)聽器,監(jiān)聽的隊列名稱是hello,說明數(shù)據(jù)可定會過來,數(shù)據(jù)過來了,通過 @RabbitHandler 修飾的方法來處理過來的數(shù)據(jù)。打印一下。下面我們啟動項目看看效果。

在瀏覽器中輸入 http://localhost:8080/hello?name=shuqi 看到下面的結(jié)果

看下控制臺輸出的日志

2018-03-25 16:24:32.752 INFO 4987 --- [cTaskExecutor-1] com.shuqi.consumer.HelloConsumer : 接收到的消息:message:hello shuqi

說明消息已經(jīng)被consumer接收并處理掉了。大家可以把玩下。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java通過調(diào)用FFMPEG獲取視頻時長

    Java通過調(diào)用FFMPEG獲取視頻時長

    這篇文章主要為大家詳細介紹了Java通過調(diào)用FFMPEG獲取視頻時長,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • JSON序列化Redis讀取出錯問題解決方案

    JSON序列化Redis讀取出錯問題解決方案

    這篇文章主要介紹了JSON序列化Redis讀取出錯問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Spring?Boot?應用的熱部署配置方法

    Spring?Boot?應用的熱部署配置方法

    熱部署,簡單來說,就是代碼修改后不需重啟項目就可自動加載出新的內(nèi)容,這篇文章主要介紹了Spring?Boot?應用的熱部署配置?,需要的朋友可以參考下
    2022-11-11
  • IDEA中Jar包的制作和使用方法

    IDEA中Jar包的制作和使用方法

    這篇文章主要介紹了IDEA的Jar包的制作和使用方法,文中補充介紹了idea的pom依賴配置后,不會自動下載jar包的解決辦法,感興趣的朋友跟隨小編一起看看吧
    2025-04-04
  • java實現(xiàn)文件上傳的詳細步驟

    java實現(xiàn)文件上傳的詳細步驟

    文件上傳是用戶將本地文件通過Web頁面提交到服務器的過程,涉及客戶端、服務器端、上傳表單等組件,在SpringBoot中,通過MultipartFile接口處理上傳文件,并將其保存在服務器,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • springboot對接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等

    springboot對接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等

    這篇文章主要介紹了springboot對接第三方微信授權(quán)及獲取用戶的頭像和昵稱等等,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot 使用hibernate validator校驗

    SpringBoot 使用hibernate validator校驗

    這篇文章主要介紹了SpringBoot 使用hibernate validator校驗,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 解決@MapperScan和@Mapper共存之坑XxxMapper?that?could?not?be?found.

    解決@MapperScan和@Mapper共存之坑XxxMapper?that?could?not?be?fo

    這篇文章主要介紹了解決@MapperScan和@Mapper共存之坑XxxMapper?that?could?not?be?found問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • MyBatis常見報錯問題及解決方案

    MyBatis常見報錯問題及解決方案

    這篇文章主要介紹了MyBatis常見報錯問題及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • java非法字符‘\ufeff‘解決方法

    java非法字符‘\ufeff‘解決方法

    本文主要介紹了java非法字符‘\ufeff‘解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論

江口县| 禹城市| 江陵县| 工布江达县| 九龙县| 隆子县| 青川县| 漳浦县| 桐城市| 临西县| 澎湖县| 隆昌县| 天镇县| 南乐县| 宜君县| 黑山县| 衡阳县| 贵南县| 恭城| 安福县| 峡江县| 尼勒克县| 清涧县| 扎鲁特旗| 丘北县| 星子县| 皮山县| 枝江市| 云浮市| 都昌县| 辰溪县| 昭觉县| 东方市| 东安县| 平南县| 巴塘县| 安康市| 紫金县| 隆回县| 建宁县| 盐城市|