亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2024年07月31日 10:03:05   作者:良月柒  
本文介紹了在Spring Boot中實(shí)現(xiàn)RabbitMQ監(jiān)聽(tīng)消息的幾種方式,包括使用@RabbitListener注解、MessageListenerAdapter、配置連接工廠(chǎng)和隊(duì)列等方式,感興趣的可以了解一下

在現(xiàn)代的分布式系統(tǒng)中,消息隊(duì)列扮演著至關(guān)重要的角色,用于解耦服務(wù)之間的通信,實(shí)現(xiàn)異步消息傳遞。而RabbitMQ作為其中一種常用的消息隊(duì)列服務(wù),在Spring Boot中得到了廣泛的應(yīng)用。本文將介紹在Spring Boot中實(shí)現(xiàn)RabbitMQ監(jiān)聽(tīng)消息的幾種方式,幫助程序員選擇適合自己項(xiàng)目的方式。

1. 引入RabbitMQ依賴(lài)

在Spring Boot項(xiàng)目中使用RabbitMQ,首先需要在pom.xml文件中添加RabbitMQ的依賴(lài):

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

這樣就能夠使用Spring Boot提供的RabbitMQ自動(dòng)配置功能。

2. 注冊(cè)消息監(jiān)聽(tīng)器

在Spring Boot中,可以通過(guò)注冊(cè)@RabbitListener注解的方法來(lái)監(jiān)聽(tīng)RabbitMQ中的消息。下面介紹幾種常見(jiàn)的注冊(cè)方式:

2.1 使用@RabbitListener注解

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

@Component
public class MessageListener {

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

通過(guò)@RabbitListener注解標(biāo)注在方法上,指定要監(jiān)聽(tīng)的隊(duì)列名稱(chēng),當(dāng)有消息到達(dá)指定隊(duì)列時(shí),Spring Boot會(huì)自動(dòng)調(diào)用標(biāo)注了@RabbitListener的方法來(lái)處理消息。

2.2 使用@RabbitListener注解和MessageConverter

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

@Component
public class MessageListener {

    @RabbitListener(queues = "queueName")
    public void handleMessage(Message message) {
        // 處理接收到的消息
        System.out.println("Received message: " + new String(message.getBody()));
    }
}

在這種方式下,handleMessage方法的參數(shù)為Message類(lèi)型,可以手動(dòng)解析消息內(nèi)容。

2.3 使用MessageListenerAdapter

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

@Component
public class MessageListener {

    @Bean
    public MessageListenerAdapter messageListenerAdapter() {
        return new MessageListenerAdapter(new MyMessageHandler());
    }
}

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

通過(guò)MessageListenerAdapter可以將普通的POJO對(duì)象適配為MessageListener,實(shí)現(xiàn)消息的處理。

3. 配置連接工廠(chǎng)和隊(duì)列

除了使用注解方式注冊(cè)消息監(jiān)聽(tīng)器外,還可以通過(guò)配置文件的方式手動(dòng)配置連接工廠(chǎng)和隊(duì)列。

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

@Configuration
public class RabbitMQConfig {

    @Bean
    public Queue queue() {
        return new Queue("queueName");
    }
}

這樣就可以創(chuàng)建一個(gè)名為queueName的隊(duì)列,用于存放消息。

4. 使用SimpleRabbitListenerContainerFactory配置

除了默認(rèn)的監(jiān)聽(tīng)器容器外,還可以通過(guò)SimpleRabbitListenerContainerFactory配置自定義的監(jiān)聽(tīng)器容器,實(shí)現(xiàn)更多個(gè)性化的配置。

import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitMQConfig {

    @Bean
    public SimpleRabbitListenerContainerFactory myListenerContainerFactory() {
        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
        // 設(shè)置連接工廠(chǎng)、并發(fā)消費(fèi)者數(shù)量等
        return factory;
    }
}

5. 總結(jié)

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

相關(guān)文章

  • springcloud-gateway集成knife4j的示例詳解

    springcloud-gateway集成knife4j的示例詳解

    這篇文章主要介紹了springcloud-gateway集成knife4j的示例詳解,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Java利用for循環(huán)打印菱形的實(shí)例教程

    Java利用for循環(huán)打印菱形的實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于Java利用for循環(huán)打印菱形的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringBoot + openFeign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用的過(guò)程

    SpringBoot + openFeign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用的過(guò)程

    現(xiàn)在的微服務(wù)項(xiàng)目不少都使用的是springboot+spring cloud構(gòu)建的項(xiàng)目,微服務(wù)之間的調(diào)用都離不開(kāi)feign來(lái)進(jìn)行遠(yuǎn)程調(diào)用,這篇文章主要介紹了SpringBoot + openFeign實(shí)現(xiàn)遠(yuǎn)程接口調(diào)用,需要的朋友可以參考下
    2022-11-11
  • JVM的垃圾回收機(jī)制真是通俗易懂

    JVM的垃圾回收機(jī)制真是通俗易懂

    這篇文章主要為大家詳細(xì)介紹了JVM的垃圾回收機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 菜鳥(niǎo)學(xué)習(xí)java設(shè)計(jì)模式之單例模式

    菜鳥(niǎo)學(xué)習(xí)java設(shè)計(jì)模式之單例模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之單例模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • javafx實(shí)現(xiàn)五子棋游戲

    javafx實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了javafx實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • JavaWeb response完成重定向?qū)崿F(xiàn)過(guò)程詳解

    JavaWeb response完成重定向?qū)崿F(xiàn)過(guò)程詳解

    這篇文章主要介紹了JavaWeb response完成重定向?qū)崿F(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • JAVA中的deflate壓縮實(shí)現(xiàn)方法

    JAVA中的deflate壓縮實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇JAVA中的deflate壓縮實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • Elasticsearch開(kāi)發(fā)AtomicArray使用示例探究

    Elasticsearch開(kāi)發(fā)AtomicArray使用示例探究

    這篇文章主要為大家介紹了Elasticsearch AtomicArray使用示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • springBoot系列常用注解(小結(jié))

    springBoot系列常用注解(小結(jié))

    這篇文章主要介紹了springBoot系列常用注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論