欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

1. @RabbitListener 注解方式

以下是使用 @RabbitListener 注解方式實(shí)現(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);
        // 在這里處理接收到的消息
    }
}

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

2. MessageListener 接口方式

以下是使用 MessageListener 接口方式實(shí)現(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); // 設(shè)置連接工廠
        container.setQueueNames("myQueue"); // 設(shè)置監(jiān)聽的隊(duì)列名稱
        container.setMessageListener(new MyMessageListener()); // 設(shè)置消息監(jiān)聽器
        container.start(); // 啟動監(jiān)聽容器
    }
}

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

3. MessageListenerAdapter 適配器方式

以下是使用 MessageListenerAdapter 適配器方式實(shí)現(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); // 設(shè)置連接工廠
        container.setQueueNames("myQueue"); // 設(shè)置監(jiān)聽的隊(duì)列名稱

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

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

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

4. @RabbitHandler 注解方式

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

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ù)類型消息
    }
}

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

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

相關(guān)文章

  • Spring中Properties的配置方式

    Spring中Properties的配置方式

    這篇文章主要介紹了Spring中Properties的配置方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā)

    Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā)

    本文主要介紹了Spring Shell 命令行實(shí)現(xiàn)交互式Shell應(yīng)用開發(fā),能夠幫助開發(fā)者快速構(gòu)建功能豐富的命令行應(yīng)用程序,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例

    SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例

    在SpringBoot開發(fā)后端服務(wù)時(shí),我們一般是提供接口給前端使用,本文主要介紹了SpringBoot+Jersey跨域文件上傳的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • java實(shí)現(xiàn)后臺處理base64圖片還原為文件

    java實(shí)現(xiàn)后臺處理base64圖片還原為文件

    這篇文章主要介紹了java實(shí)現(xiàn)后臺處理base64圖片還原為文件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java微信退款開發(fā)

    Java微信退款開發(fā)

    這篇文章主要為大家詳細(xì)介紹了Java微信退款開發(fā)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • JAVA?module-info.java文件詳解

    JAVA?module-info.java文件詳解

    這篇文章主要介紹了JAVA?module-info.java文件詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java的三種隨機(jī)數(shù)生成方式的實(shí)現(xiàn)方法

    java的三種隨機(jī)數(shù)生成方式的實(shí)現(xiàn)方法

    這篇文章主要介紹了java的三種隨機(jī)數(shù)生成方式的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java中 log4j日志級別配置詳解

    Java中 log4j日志級別配置詳解

    這篇文章主要介紹了Java中 log4j日志級別配置詳解,需要的朋友可以參考下
    2018-01-01
  • 基于Java實(shí)現(xiàn)空間濾波完整代碼

    基于Java實(shí)現(xiàn)空間濾波完整代碼

    空間濾波是一種采用濾波處理的影像增強(qiáng)方法。其理論基礎(chǔ)是空間卷積和空間相關(guān)。這篇文章主要介紹了基于Java的空間濾波代碼實(shí)現(xiàn),需要的朋友可以參考下
    2021-08-08
  • 關(guān)于Spring源碼是如何解決Bean的循環(huán)依賴

    關(guān)于Spring源碼是如何解決Bean的循環(huán)依賴

    這篇文章主要介紹了關(guān)于Spring源碼是如何解決Bean的循環(huán)依賴,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論