首页 > 其他分享 >大菜菜学习RabbitMQ——第三篇

大菜菜学习RabbitMQ——第三篇

时间:2024-04-08 19:45:57浏览次数:25  
标签:第三篇 RabbitListener Spring 菜菜 RabbitMQ 消息 msg 方法 代码

这一节讲的是啥呢,总的来说这个其实是监听,是在消费者模块里面写的东西

 在这里你会发现我们并没有在test里面写代码,而是在这个主类里面写代码了,这个mqlistener就是一个监听器

那我们来看看这个功能要怎么写代码

首先是最重要:写配置文件!!!

我真的服了我写代码的时候忘记配置了,然后一直都运行出现问题,后面我直接复制报错给chatgpt,它显示的问题是这个指定的队列不存在,所以我就知道了是配置文件的问题,我们的虚拟地址是错误的,我们要自己配置以后才可以找到对应的队列,配置和上一篇文章是一样的,直接复制粘贴即可

package com.itheima.consumer.listeners;

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

/**
 * 功能:
 * 作者:LiCooer
 * 日期:2024/4/8 16:38
 */

@Slf4j
@Component
public class MqListener {


    @RabbitListener(queues = "simple.queue")
    public void listenSimpleQueue(String msg) {
        System.out.println("消费者收到了simple.queue的消息:【" + msg + "】");
    }
}

这里有一个非常好玩的问题就是这个msg,其实很简单可以看出我们这里其实并没有具体的写这个msg到底是什么对吧,但是他确实是读取到了相应的内容

在Spring AMQP中,`@RabbitListener` 注解用于声明一个方法作为消息监听器,当监听到指定队列有消息到达时,Spring 会自动调用该方法,并将消息内容作为参数传递给方法。

在你的代码中,虽然你没有明确定义 `msg` 参数的值,但是 `@RabbitListener` 注解会自动将消息内容作为方法参数传递给监听方法。这是 Spring AMQP 的一项方便功能,它会根据消息的类型自动进行转换,并将消息内容传递给方法。

所以,即使你没有明确地在方法参数中写出消息内容的变量名,Spring 仍然能够将消息内容传递给方法,并且在方法中可以直接使用。

至此第三篇文章就这么结束了

标签:第三篇,RabbitListener,Spring,菜菜,RabbitMQ,消息,msg,方法,代码
From: https://www.cnblogs.com/codeforceshobby/p/18122386

相关文章

  • 大菜菜学习RabbitMQ——第二篇
    我在上一节讲述了如何使用Rabbitmq图形化界面在我们学习这个的基础使用,然后我们现在就要做的就是用java进行rabbitmq操作首先在黑马课上有一个mq-demo文件这个资料,各位可以去微信程序里面下载对应资料包,然后会在百度网盘里链接:https://pan.baidu.com/s/1VFdBOQYZVACxUBkzBuLVHA......
  • 大菜菜学习RabbitMQ——第一篇
    现在开始呢我在学MQ,首先这篇博客,如果需要借鉴的话,前提是,你要有消息队列对应的前置知识,如果没有的话可以去B站或者去其他的博客上面学习不多逼逼,现在开始首先是localhost:15672,如果你下载好了rabbitmq,这个应该是很不陌生的,对于刚开始使用者来说就是guest,但是我们其实可以添加用户......
  • RabbitMQ经典知识
    消息可靠性投递消息的可靠性投递主要是保证消息投递的每一个环节都要成功RabbitMQ整个消息投递路径为Producer-》Broker-》Exchange-》Queue-》Consumer生产者到交换机Producer发送到Exchange的过程依靠RabbitMQ的Confirm机制来确保可靠性生产者投递消息到了Broker里的Exc......
  • Kafka、ActiveMQ、RabbitMQ、RocketMQ四大消息队列优劣对比与选择指南
    在分布式系统架构中,消息队列(MessageQueue,MQ)扮演着至关重要的角色,它作为异步通信的核心组件,能够实现系统解耦、削峰填谷、数据缓冲等功能。本文将聚焦于四大主流消息队列——Kafka、ActiveMQ、RabbitMQ、RocketMQ,深度剖析它们各自的优缺点,并在最后提供一份详尽的选择指南,以助......
  • 如何使用Java和RabbitMQ实现延迟队列(方式二)?
    前言昨天写了一篇关于Java和RabbitMQ使用插件实现延迟队列功能的文章,今天来讲下另外一种方式,不需要RabbitMQ的插件。前期准备,需要安装好docker、docker-compose的运行环境。需要安装RabbitMQ的可以看下面这篇文章。如何使用PHP和RabbitMQ实现消息队列?-CSDN博客使用RabbitM......
  • 如何使用Java和RabbitMQ实现延迟队列?
    前言今天我们使用Java和RabbitMQ实现消息队列的延迟功能。前期准备,需要安装好docker、docker-compose的运行环境。需要安装RabbitMQ的可以看下面这篇文章。如何使用PHP和RabbitMQ实现消息队列?-CSDN博客今天讲的是依赖RabbitMQ的延迟插件实现消息队列的延迟功能。如何安装......
  • rabbitmq
    消费端限流/**设置限流机制*param1:prefetchSize,消息本身的大小如果设置为0那么表示对消息本身的大小不限制*param2:prefetchCount,告诉rabbitmq不要一次性给消费者推送大于N个消息*param3:global,是否将上面的设置应用于整个通道,false表示只应用于当前消费者......
  • Spring Boot 集成 RabbitMQ(一)
    1、RabbitMQ和SpringBoot的基础概念RabbitMQ 是一个开源的MQ(MessageQueue,消息队列)客户端服务器实现,遵循AMQP(AdvancedMessageQueuingProtocol)协议。它允许应用发送消息并不直接传递到目标对象,而是通过交换器,队列,绑定的方式进行处理和转发,从而实现应用的解耦,异步......
  • RabbitMQ3.x之六_RabbitMQ使用场景
    RabbitMQ3.x之六_RabbitMQ使用场景文章目录RabbitMQ3.x之六_RabbitMQ使用场景1.为什么选择RabbitMQ?1.可互操作2.灵活3.可靠2.常见用户案例1.服务解耦2.远程过程调用3.流处理4.物联网1.为什么选择RabbitMQ?RabbitMQ是一个可靠且成熟的消息传递和流代......
  • 天翼云充值:分布式消息服务RabbitMQ支持AMQP协议,兼容RabbitMQ生态
    天翼云充值:分布式消息服务RabbitMQ支持AMQP协议,兼容RabbitMQ生态简介:飞机@luotuoemo本文由(天翼云代理商:【金推云】www.jintui.cn)撰写天翼云:支持AMQP协议的RabbitMQ服务分布式消息服务RabbitMQ是一种开源的、基于Erlang语言的消息代理和队列服务器。RabbitMQ最大的特性就......