Spring AMQP ----注解篇

1. Fanout 类型交换机

/*** 监听 fanout 类型的交换机 "fanout.hamll",绑定到队列 "fanout.hamll.query2"* fanout 类型的交换机会将消息广播到所有绑定的队列。** 使用步骤:* 1. 确保 RabbitMQ 服务器已启动并运行。* 2. 在 RabbitMQ 管理界面中创建名为 "fanout.hamll" 的 fanout 类型交换机。* 3. 启动 Spring Boot 应用程序,MyRabbitListener 将自动创建并绑定队列 "fanout.hamll.query2" 到交换机 "fanout.hamll"。** 注意点:* 1. fanout 类型的交换机忽略 routing key,所有绑定的队列都会收到消息。* 2. 确保交换机名称和类型与代码中声明的一致。*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "fanout.hamll.query2", durable = true), // 持久化队列exchange = @Exchange(name = "fanout.hamll", type = ExchangeTypes.FANOUT, durable = true) // 持久化交换机
))
public void query2(String message) {System.err.println("fanout.hamll.query2: " + message);
}

2. Direct 类型交换机

/*** 监听 direct 类型的交换机 "direct.hamll",绑定到队列 "direct.hamll.query1",使用 routing key "query.hamll.query1"* direct 类型的交换机会根据 routing key 将消息路由到指定的队列。** 使用步骤:* 1. 确保 RabbitMQ 服务器已启动并运行。* 2. 在 RabbitMQ 管理界面中创建名为 "direct.hamll" 的 direct 类型交换机。* 3. 启动 Spring Boot 应用程序,MyRabbitListener 将自动创建并绑定队列 "direct.hamll.query1" 到交换机 "direct.hamll"。** 注意点:* 1. direct 类型的交换机根据 routing key 精确匹配队列。* 2. 确保交换机名称、类型和 routing key 与代码中声明的一致。*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "direct.hamll.query1", durable = true), // 持久化队列exchange = @Exchange(name = "direct.hamll", type = ExchangeTypes.DIRECT, durable = true), // 持久化交换机key = "query.hamll.query1" // routing key
))
public void directQuery1(String message) {System.err.println("direct.hamll.query1: " + message);
}

3. Topic 类型交换机

/*** 监听 topic 类型的交换机 "topic.hamll",绑定到队列 "topic.hamll.query1",使用 routing key "query.hamll.*"* topic 类型的交换机会根据 routing key 的模式匹配将消息路由到指定的队列。** 使用步骤:* 1. 确保 RabbitMQ 服务器已启动并运行。* 2. 在 RabbitMQ 管理界面中创建名为 "topic.hamll" 的 topic 类型交换机。* 3. 启动 Spring Boot 应用程序,MyRabbitListener 将自动创建并绑定队列 "topic.hamll.query1" 到交换机 "topic.hamll"。** 注意点:* 1. topic 类型的交换机根据 routing key 的模式匹配队列。* 2. 通配符说明:*    - *:匹配一个单词。*    - #:匹配零个或多个单词。* 3. 确保交换机名称、类型和 routing key 模式与代码中声明的一致。*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "topic.hamll.query1", durable = true), // 持久化队列exchange = @Exchange(name = "topic.hamll", type = ExchangeTypes.TOPIC, durable = true), // 持久化交换机key = "query.hamll.*" // routing key 模式
))
public void topicQuery1(String message) {System.err.println("topic.hamll.query1: " + message);
}

4. Headers 类型交换机

/*** 监听 headers 类型的交换机 "headers.hamll",绑定到队列 "headers.hamll.query1"* headers 类型的交换机会根据消息的 headers 属性进行匹配将消息路由到指定的队列。** 使用步骤:* 1. 确保 RabbitMQ 服务器已启动并运行。* 2. 在 RabbitMQ 管理界面中创建名为 "headers.hamll" 的 headers 类型交换机。* 3. 启动 Spring Boot 应用程序,MyRabbitListener 将自动创建并绑定队列 "headers.hamll.query1" 到交换机 "headers.hamll"。** 注意点:* 1. headers 类型的交换机根据消息的 headers 属性进行匹配。* 2. 确保交换机名称、类型和 headers 属性与代码中声明的一致。*/
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "headers.hamll.query1", durable = true), // 持久化队列exchange = @Exchange(name = "headers.hamll", type = ExchangeTypes.HEADERS, durable = true), // 持久化交换机arguments = {@Argument(name = "x-match", value = "all"), // 匹配所有 headers@Argument(name = "type", value = "query"),@Argument(name = "module", value = "query1")}
))
public void headersQuery1(String message) {System.err.println("headers.hamll.query1: " + message);
}

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

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

相关文章

SpringMVC(四)响应

目录 数据处理及跳转 1. 结果跳转方式 ①.ModelAndView ②.ServletAPI 1、通过HttpServletResponse进行输出 2、通过HttpServletResponse实现请求转发 3、通过HttpServletResponse实现重定向 ③.SpringMVC 1.直接输出 2.请求转发 3.重定向 2.ResponseBody响应json数…

Mac软件介绍之录屏软件Filmage Screen

软件介绍 Filmage Screen 是一款专业的视频录制和编辑软件,适用于 Mac 系统 可以选择4k 60fps,可以选择录制电脑屏幕,摄像头录制,可以选择区域录制。同时也支持,简单的视频剪辑。 可以同时录制电脑麦克风声音 标准…

欧科云链研究院:ChatGPT 眼中的 Web3

编辑|OKG Research 转眼间,2024年已经进入尾声,Web3 行业经历了热闹非凡的一年。今年注定也是属于AI的重要一年,OKG Research 决定拉上 ChatGPT 这位“最懂归纳的AI拍档”,尝试把一整年的研究内容浓缩成精华。我们一共…

.NET 9.0 WebApi 发布到 IIS 详细步骤

微软表示,.NET 9 是迄今为止性能最高的 .NET 版本,对运行时、工作负载和语言方面进行了 1,000 多项与性能相关的改进,并采用了更高效的算法来生成更好的代码。 .NET 9 是 .NET 8 的继任者,特别侧重于云原生应用和性能。 作为标准期…

【通识安全】煤气中毒急救的处置

1.煤气中毒的主要症状与体征一氧化碳中毒,其中毒症状一般分为轻、中、重三种。 (1)轻度:仅有头晕、头痛、眼花、心慌、胸闷、恶心等症状。如迅速打开门窗,或将病人移出中毒环境,使之吸入新鲜空气和休息,给些热饮料&am…

ECCV`24 | 首次解决文本到3D NeRFs分解问题!港中文等提出DreamDissector

论文链接:https://arxiv.org/abs/2407.16260 亮点直击 据作者所知,作者是第一个解决文本到3D NeRFs分解问题的团队。 为了解决这个问题,本文引入了一个名为DreamDissector的新颖框架,包括一种新颖的神经类别场(NeCF&a…

nginx-灰度发布策略(split_clients)

一. 简述: 基于客户端的灰度发布(也称为蓝绿部署或金丝雀发布)是一种逐步将新版本的服务或应用暴露给部分用户,以确保在出现问题时可以快速回滚并最小化影响的技术。对于 Nginx,可以通过配置和使用不同的模块来实现基于…

PCL点云库入门——PCL库点云特征之PFH点特征直方图(Point Feature Histograms -PHF)

1、算法原理 PFH点(Point Feature Histogram)特征直方图的原理涉及利用参数化查询点与邻域点之间的空间差异,并构建一个多维直方图以捕捉点的k邻域几何属性。这个高维超空间为特征表示提供了一个可度量的信息空间,对于点云对应曲面…

qml PathView详解

1、概述 PathView 是 Qt Quick 中一个非常强大的视图组件,它基于一个 Path 来展示视图项(如 Item、Rectangle 等)。PathView 可以让你按照定义的路径动态地显示多个元素,并且支持动画、滑动等功能。这个视图控件的最大特点是能够…

网络协议安全的攻击手法

1.使用SYN Flood泛洪攻击: SYN Flood(半开放攻击)是最经典的ddos攻击之一,他利用了TCP协议的三次握手机制,攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源端口的TCP SYN报文,服务器响应了这些报文后就会生成大量的半连…

前端学习DAY31(子元素溢出父元素)

.box1{width: 200px;height: 200px;background-color: chocolate;} 子元素是在父元素的内容区中排列的,如果子元素的大小超过了父元素,则子元素会从 父元素中溢出,使用overflow属性设置父元素如何处理溢出的子元素 可选值:visible…

机器人手眼标定

机器人手眼标定 一、机器人手眼标定1. 眼在手上标定基本原理2. 眼在手外标定基本原理 二、眼在手外标定实验三、标定精度分析 一、机器人手眼标定 要实现由图像目标点到实际物体上抓取点之间的坐标转换,就必须拥有准确的相机内外参信息。其中内参是相机内部的基本参…

【前端下拉框】获取国家国旗

一、先看效果 二、代码实现&#xff08;含国旗&#xff09; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

Timer、Ticker使用及其注意事项

Timer、Ticker使用及其注意事项 在刚开始学习golang语言的时候就听说Timer、Ticker的使用要尤其注意&#xff0c;很容易出现问题&#xff0c;这次就来一探究竟。 本文主要脉络&#xff1a; 介绍定时器体系&#xff0c;并介绍常用使用方式和错误使用方式源码解读 timer、tic…

C++11——2:可变模板参数

一.前言 C11引入了可变模板参数&#xff08;variadic template parameters&#xff09;的概念&#xff0c;它允许我们在模板定义中使用可变数量的参数。这样&#xff0c;我们就可以处理任意数量的参数&#xff0c;而不仅限于固定数量的参数。 二.可变模板参数 我们早在C语言…

君正T41交叉编译ffmpeg、opencv并做h264软解,利用君正SDK做h264硬件编码

目录 1 交叉编译ffmpeg----错误解决过程&#xff0c;不要看 1.1 下载源码 1.2 配置 1.3 编译 安装 1.3.1 报错&#xff1a;libavfilter/libavfilter.so: undefined reference to fminf 1.3.2 报错&#xff1a;error: unknown type name HEVCContext; did you mean HEVCPr…

感知器的那些事

感知器的那些事 历史背景Rosenblatt和Minsky关于感知机的争论弗兰克罗森布拉特简介提出感知器算法Mark I感知机争议与分歧马文明斯基简介单层感知器工作原理训练过程多层感知器工作原理单层感知机 vs 多层感知机感知器模型(Perceptron),是由心理学家Frank Rosenblatt在1957年…

C语言:枚举类型

一、枚举类型的声明 枚举顾名思义就是一一列举。我们可以把可能的取值一一列举。比如我们现实生活中&#xff1a; 星期一到星期日是有限的7天&#xff0c;可以一一列举 &#xff1b;性别有&#xff1a;男、女、保密&#xff0c;也可以一一列举 &#xff1b;月份有12个月&#x…

25/1/6 算法笔记<强化学习> 初玩V-REP

我们安装V-REP之后&#xff0c;使用的是下面Git克隆的项目。 git clone https://github.com/deep-reinforcement-learning_book/Chapter16-Robot-Learning-in-Simulation.git 项目中直接组装好了一个机械臂。 我们先来分析下它的对象树 DefaultCamera:摄像机&#xff0c;用于…

CODESYS MODBUS TCP通信(AM400PLC作为主站通信)

禾川Q1 PLC MODBUS-TCP通信 禾川Q1 PLC MODBUS-TCP通信(CODESYS平台完整配置+代码)-CSDN博客文章浏览阅读17次。MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(MODBUSTCP通信)_将matlab仿真导入plc-CSDN博客文章浏览阅读722次。本文详细介绍了如何使用MATLAB与S7-1200PLC进行…