@RabbitListener 注解详解

前言:

@RabbitListener 注解是 Spring AMQP 提供的注解,用于简化 RabbitMQ 消息监听器的创建,我们在方法上添加 @RabbitListener 注解,就可以将方法注册为消息监听器,监听 RabbitMQ 的消息,本篇我们来分析一下 @RabbitListener 注解的使用详解。

RabbitMQ 系列文章传送门

RabbitMQ 的介绍及核心概念讲解

@RabbitListener 的简单使用

我们在 directConsumer 方法上加了一个 @RabbitListener 注解,并在注解中标注了队列名 direct-buget-queue,这样我们就可以监听消费队列 direct-buget-queue 中的消息了。

@Component
public class MyRabbitConsumer {//direct 直连模式消费端@RabbitListener(queues = "direct-buget-queue")public void directConsumer(String message) {System.out.println("direct 消息消费成功,message内容为:" + message);}}

@RabbitListener 注解满足同时监听多个队列的消息,如下:

@Component
public class MyRabbitConsumer {//direct 直连模式消费端@RabbitListener(queues = {"direct-buget-queue", "direct-buget-queue2"})public void directConsumer(String message) {System.out.println("direct 消息消费成功,message内容为:" + message);}}

@RabbitListener 的复杂使用

使用 @RabbitListener 绑定交换器、路由、队列,设置手动提交和监听容器的名称,代码如下:

@RabbitListener(bindings = @QueueBinding(value = @Queue(value = "topic-buget-queue", durable = "true"),exchange = @Exchange(value = "topicExchange", type = ExchangeTypes.TOPIC),key = "topicRoutingKey"), ackMode = "MANUAL", containerFactory = "topicContainerFactory"
)
public void topicConsumer(String message) {System.out.println("topic topic-buget-queue 消息消费成功,message内容为:" + message);
}

@RabbitListener 注解的各个属性详解

了解了 @RabbitListener 注解的各个属性含义,可以根据我们需求灵活进行配置,属性含义解释如下:

@Target({ElementType.TYPE, ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@MessageMapping
@Documented
//可重复
@Repeatable(RabbitListeners.class)
public @interface RabbitListener {//id 为监听指定一个唯一标志String id() default "";//监听容器String containerFactory() default "";//要监听的队列名称String[] queues() default {};//监听队列的的详细信息 包括队列名称  是否持久化Queue[] queuesToDeclare() default {};//是否是独占模式boolean exclusive() default false;//指定监听容器的消费者线程的优先级String priority() default "";//指定RabbitAdmin  bean 的名称 用于声明式的队列绑定等操作String admin() default "";//用户声明队列和交换机的绑定关系QueueBinding[] bindings() default {};//监听容器组的名称String group() default "";//指定发生异常的时的返回策略String returnExceptions() default "";//指定处理异常的异常处理器String errorHandler() default "";//指定并发消费的线程数String concurrency() default "";//指定监听是否在容器启动时候启动String autoStartup() default "";//指定执行监听方法的 线程池  executorString executor() default "";//指定消息确认模式 String ackMode() default "";//指定发送回复消息的 ProcessorString replyPostProcessor() default "";//指定用于消息转换的 MessageConverter String messageConverter() default "";//指定回复消息的内容类型String replyContentType() default "";//指定是否使用转换器定义内容类型String converterWinsContentType() default "true";
}

如有错误的地方欢迎指出纠正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库的操作:SQL语言的介绍

一.前言 SQL是一种结构化查询语言。关系型数据库中进行操作的标准语言。 二.特点 ①对大小写不敏感 例如:select与Select是一样的 ②结尾要使用分号 没有分号认为还没结束; 三.分类 ①DDL:数据定义语言(数据库对象的操作(结…

std::atomic::fetch_add使用

fetch_add是一个原子操作,这个操作获取一个原子类型的当前值,将给定的递增值添加到这个原子值,然后返回原始的未递增的值。 将val添加到这个原子值中,并返回操作前的值。 整个操作是原子性的(原子性的读-修改-写操作&a…

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:error是设置我们失败的logo 设置的文字上…

I/O复用之 epoll使用详解 Linux编程

epoll 是 Linux 内核提供的一种用于多路复用 I/O 事件通知的机制,专为高效处理大量并发连接而设计。它被广泛应用于网络服务器和高性能应用中,主要用于监控多个文件描述符(如套接字、管道、文件等)上的事件(可读、可写…

MyBatis ——在java层面对MySQL数据库进行操作

目录 MyBatis 是一款优秀的 持久层框架,用于简化JDBC(java操作数据库)的开发; 使用MyBatis 查询所有用户数据的过程 Lombok是一个实用的]ava类库,能通过注解的形式 简化 JavaBean的代码 注解: 引入Myb…

【Leetcode152】乘积最大子数组(动态规划)

文章目录 一、题目二、思路三、代码 一、题目 二、思路 (0)读懂题意:题目的“连续”是指位置的连续,而不是说数字的连续,这是个大坑。 (1)确定状态:定义两个状态来记录当前子数组的…

Python 爬虫项目实战(一):爬取某云热歌榜歌曲

前言 网络爬虫(Web Crawler),也称为网页蜘蛛(Web Spider)或网页机器人(Web Bot),是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓…

MySQL笔记2(DQL查询语言【条件、分组、排序、限制、子查询、左右连接、内连接、联合查询】)

DQL数据查询语言与项目高级查询实战 先安装数据库并创建一个库 并创建以下数据 /*创建部门表*/CREATE TABLE dept( deptnu INT PRIMARY KEY comment 部门编号, dname VARCHAR(50) comment 部门名称, addr VARCHAR(50) comment 部门地址 );/*某个公司的员工表*/ CREATE TABLE…

Python闭包示例代码

代码示例: def outer_function(x):def inner_function(y):return x yreturn inner_functionclosure_example outer_function(5) result closure_example(3) # 输出为 8在这个示例中,outer_function 是一个包含内部函数的闭包。让我们逐步分析它的工…

金融业开源技术 术语

金融业开源技术 术语 1 范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全设备类型

一、隔爆型 隔爆型定位设备是将可能产生火花、电弧和危险温度的零部件都放置在一个隔爆外壳内。当内部发生爆炸时,外壳能够承受爆炸压力而不损坏,并且不会使内部爆炸传播到周围的爆炸性环境中。隔爆型产品通常比较坚固耐用,但相对来说体积和重…

「ComfyUI」比 joy_caption 更好用的提示词反推模型!

前言 距离我们上次介绍 joy_caption 还没几天呢,这就又出新模型来与 joy_caption 一争高下了。 今天我们要介绍的是:Florence-2-X-PromptGen-v1.5,是在 Florence-2 的基础上进行精细调优的一款高级图像标注工具,专门为生成和标注…

Flutter框架——2.状态-路由-包-资源

文章参考了Flutter中国开源项目发起人杜文(网名wendux)创作的一本系统介绍Flutter技术的中文书籍《Flutter实战第二版》,网址:第二版序 | 《Flutter实战第二版》 https://book.flutterchina.club/#第二版变化 文章目录 一、状态管…

【C#跨平台开发详解】C#跨平台开发技术之.NET Core基础学习及快速入门

1. C#与.NET的发展历程 C#是由Microsoft开发的现代编程语言,最初伴随着.NET Framework发布。随着技术的进步,特别是针对跨平台开发的需求,Microsoft推出了.NET Core,这是一个开源且跨平台的框架,支持Windows、macOS和…

项目实战 ---- 商用落地视频搜索系统(8)---优化(2)---查询逻辑层优化

目录 背景 技术衡量与方案 一种可实现方案 可实现方案及设计描述 可能存在的问题 一种创新实现方案 方案的改良设计 策略公式 优化的实现 完整代码 代码解释 异常场景的考量 处理方式 运行注意事项 运行结果 结果优化对比与解释 背景 在项目实战 ---- 商用落地…

发票真伪识别接口费用-发票真伪查验接口-发票验真示例

发票信息核验是一个重要的财务和会计过程,涉及到对发票上的信息进行验证,以确保其真实性和准确性。在数字化时代,这一过程企业通常想通过调用发票查验接口的方式实现自动化管理模式。 发票查验接口费用不同的服务提供商会有不同的收费标准&a…

利用数据分析提升SEO排名的7种方法

我们都听过“大数据分析”这个词。科技让我们能够清晰地了解我们的活动和内容的表现——向我们提供了关于受众的宝贵信息,甚至可以精确到他们在Google和其他搜索引擎上使用的具体搜索词。 你已经在你的业务中使用数据分析了吗?如果是,你有利…

LeetCode 每日一题 2024/9/2-2024/9/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/2 3153. 所有数对中数位不同之和9/3 2708. 一个小组的最大实力值9/4 2860. 让所有学生保持开心的分组方法数9/5 3174. 清除数字9/6 3176. 求出最长好子序列 I9/7 3177. 求…

828华为云征文|华为云Flexus X实例docker部署MinIO对象存储系统obs

828华为云征文|华为云Flexus X实例docker部署MinIO对象存储系统obs 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定…

数据分析:R语言计算XGBoost线性回归模型的SHAP值

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍SHAP用途计算方法:应用加载R包导入数据数据预处理函数模型介绍 SHAP(SHapley Additive exPlanations)值是一种解释机器学习模型预测的方法。它基于博弈论中的Shapley值概念,…