这一节讲的是啥呢,总的来说这个其实是监听,是在消费者模块里面写的东西
在这里你会发现我们并没有在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