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

SpringBoot實現(xiàn)RabbitMQ監(jiān)聽消息的四種方式

 更新時間:2024年05月21日 09:02:52   作者:阿湯哥  
本文主要介紹了SpringBoot實現(xiàn)RabbitMQ監(jiān)聽消息的四種方式,包括@RabbitListener,MessageListener接口,MessageListenerAdapter適配器,@RabbitHandler這幾種,感興趣的可以了解一下

Spring Boot 實現(xiàn) RabbitMQ 監(jiān)聽消息的方式有以下幾種:

  • @RabbitListener 注解方式:通過在方法上標記 @RabbitListener 注解來監(jiān)聽指定的隊列,當消息到達時,被注解的方法將被調(diào)用。

  • MessageListener 接口方式:實現(xiàn) Spring AMQP 提供的 MessageListener 接口,編寫自定義的消息監(jiān)聽器,然后使用 SimpleMessageListenerContainer 設置消息監(jiān)聽器。

  • MessageListenerAdapter 適配器方式:通過 MessageListenerAdapter 類,可以將普通的 Java 方法轉(zhuǎn)換為消息監(jiān)聽器,從而簡化消息處理邏輯。

  • @RabbitHandler 注解方式:結(jié)合 @RabbitListener 和 @RabbitHandler 注解,可以實現(xiàn)多個不同類型消息的處理方法,根據(jù)消息內(nèi)容的不同調(diào)用對應的處理方法。

這些方式都可以在 Spring Boot 項目中方便地實現(xiàn) RabbitMQ 的消息監(jiān)聽功能。

1. @RabbitListener 注解方式

以下是使用 @RabbitListener 注解方式實現(xiàn) RabbitMQ 消息監(jiān)聽的示例代碼:

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class RabbitMQListener {

    @RabbitListener(queues = "myQueue")
    public void handleMessage(String message) {
        System.out.println("Received message: " + message);
        // 在這里處理接收到的消息
    }
}

在這個示例中,我們創(chuàng)建了一個名為 RabbitMQListener 的類,并使用 @RabbitListener 注解標記 handleMessage 方法,指定監(jiān)聽名為 “myQueue” 的隊列。當消息到達隊列時,handleMessage 方法將被調(diào)用來處理接收到的消息。

2. MessageListener 接口方式

以下是使用 MessageListener 接口方式實現(xiàn) RabbitMQ 消息監(jiān)聽的示例代碼:

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;

public class MyMessageListener implements MessageListener {

    @Override
    public void onMessage(Message message) {
        System.out.println("Received message: " + new String(message.getBody()));
        // 在這里處理接收到的消息
    }

    public static void main(String[] args) {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
        container.setConnectionFactory(connectionFactory); // 設置連接工廠
        container.setQueueNames("myQueue"); // 設置監(jiān)聽的隊列名稱
        container.setMessageListener(new MyMessageListener()); // 設置消息監(jiān)聽器
        container.start(); // 啟動監(jiān)聽容器
    }
}

在這個示例中,我們創(chuàng)建了一個實現(xiàn)了 MessageListener 接口的 MyMessageListener 類來處理接收到的消息。然后,我們使用 SimpleMessageListenerContainer 設置連接工廠、隊列名稱和消息監(jiān)聽器,并啟動監(jiān)聽容器。當消息到達時,onMessage 方法將被調(diào)用來處理接收到的消息。

3. MessageListenerAdapter 適配器方式

以下是使用 MessageListenerAdapter 適配器方式實現(xiàn) RabbitMQ 消息監(jiān)聽的示例代碼:

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.amqp.support.converter.SimpleMessageConverter;

public class MyMessageListener {

    public void handleMessage(String message) {
        System.out.println("Received message: " + message);
        // 在這里處理接收到的消息
    }

    public static void main(String[] args) {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
        container.setConnectionFactory(connectionFactory); // 設置連接工廠
        container.setQueueNames("myQueue"); // 設置監(jiān)聽的隊列名稱

        MessageListenerAdapter adapter = new MessageListenerAdapter(new MyMessageListener());
        adapter.setDefaultListenerMethod("handleMessage"); // 設置默認處理方法
        MessageConverter converter = new SimpleMessageConverter();
        adapter.setMessageConverter(converter); // 設置消息轉(zhuǎn)換器

        container.setMessageListener(adapter); // 設置消息監(jiān)聽適配器
        container.start(); // 啟動監(jiān)聽容器
    }
}

在這個示例中,我們創(chuàng)建了一個 MyMessageListener 類,并定義了一個處理消息的方法 handleMessage。然后,我們使用 MessageListenerAdapter 類將 MyMessageListener 類中的方法轉(zhuǎn)換為消息監(jiān)聽器,并設置默認處理方法。最后,將消息監(jiān)聽適配器設置到 SimpleMessageListenerContainer 中,并啟動監(jiān)聽容器來處理接收到的消息。

4. @RabbitHandler 注解方式

使用 @RabbitHandler 注解方式結(jié)合 @RabbitListener 注解實現(xiàn)多個不同類型消息的處理示例代碼如下:

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

@Component
@RabbitListener(queues = "myQueue")
public class MyMessageHandler {

    @RabbitHandler
    public void handleStringMessage(String message) {
        System.out.println("Received string message: " + message);
        // 處理字符串類型消息
    }

    @RabbitHandler
    public void handleIntMessage(Integer message) {
        System.out.println("Received integer message: " + message);
        // 處理整數(shù)類型消息
    }
}

在這個示例中,我們創(chuàng)建了一個名為 MyMessageHandler 的類,并使用 @RabbitListener 注解標記整個類,指定監(jiān)聽名為 “myQueue” 的隊列。然后,我們在類中定義了兩個處理消息的方法,分別使用 @RabbitHandler 注解標記,分別處理字符串類型和整數(shù)類型的消息。當不同類型的消息到達隊列時,根據(jù)消息類型調(diào)用對應的處理方法來處理消息。

到此這篇關(guān)于SpringBoot實現(xiàn)RabbitMQ監(jiān)聽消息的四種方式的文章就介紹到這了,更多相關(guān)SpringBoot RabbitMQ監(jiān)聽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java設置Access-Control-Allow-Origin允許多域名訪問的實現(xiàn)方法

    Java設置Access-Control-Allow-Origin允許多域名訪問的實現(xiàn)方法

    這篇文章主要介紹了Java設置Access-Control-Allow-Origin允許多域名訪問的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • Java8新特性Stream的完全使用指南

    Java8新特性Stream的完全使用指南

    這篇文章主要給大家介紹了關(guān)于Java8新特性Stream的完全使用指南,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java8具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • Java實現(xiàn)操作excel表格

    Java實現(xiàn)操作excel表格

    在日常工作中,對Excel工作表格的操作處理可是多的數(shù)不清楚,下面是java語言對其的操作,有需要的小伙伴可以參考下
    2015-10-10
  • IDEA 每次新建工程都要重新配置 Maven的解決方案

    IDEA 每次新建工程都要重新配置 Maven的解決方案

    這篇文章主要介紹了IDEA 每次新建工程都要重新配置Maven解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java獲取CPU和內(nèi)存占用率最簡單的方法

    Java獲取CPU和內(nèi)存占用率最簡單的方法

    這篇文章主要介紹了Java獲取CPU和內(nèi)存占用率最簡單的方法,文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06
  • Spring Cloud 微服務全棧實踐指南

    Spring Cloud 微服務全棧實踐指南

    本文詳細介紹了SpringCloud在微服務架構(gòu)中的核心能力,包括服務注冊與發(fā)現(xiàn)、配置中心、服務通信與網(wǎng)關(guān)、穩(wěn)定性工程、可觀測性、數(shù)據(jù)一致性與工程落地,以及云原生的進階演進,適合已有SpringBoot基礎的工程師進行參考和實踐,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • SpringMVC中@RequestMapping注解的實現(xiàn)

    SpringMVC中@RequestMapping注解的實現(xiàn)

    RequestMapping是一個用來處理請求地址映射的注解,本文主要介紹了SpringMVC中@RequestMapping注解的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Java實現(xiàn)窗體程序顯示日歷表

    Java實現(xiàn)窗體程序顯示日歷表

    這篇文章主要為大家詳細介紹了Java實現(xiàn)窗體程序顯示日歷表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • ElasticSearch自定義注解增刪改方式

    ElasticSearch自定義注解增刪改方式

    這篇文章主要介紹了ElasticSearch自定義注解增刪改方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • JavaGUI使用標簽與按鈕方法詳解

    JavaGUI使用標簽與按鈕方法詳解

    這篇文章主要介紹了JavaGUI使用標簽與按鈕方法,前段時間學了GUI,總體上概念還是有點模糊,于是決定花點時間簡單整理下。先簡單介紹一下GUI,GUI就是圖形用戶界面
    2023-03-03

最新評論

平南县| 合肥市| 兴安县| 江阴市| 长兴县| 鲜城| 林州市| 永德县| 丹江口市| 黄浦区| 航空| 怀化市| 闸北区| 密云县| 临潭县| 盘锦市| 嘉定区| 桓仁| 余干县| 赞皇县| 长垣县| 漾濞| 连云港市| 天等县| 正宁县| 碌曲县| 永新县| 建阳市| 八宿县| 延寿县| 木兰县| 盐边县| 阿鲁科尔沁旗| 瓮安县| 衡山县| 河源市| 海南省| 东乡| 丹棱县| 金湖县| 镇原县|