AMQ学习笔记 - 04. 消息选择器
2024-08-26 15:09:18
概述
消息选择器使用类似于SQL语法,为Consumer指定基于Message属性的筛选条件。
消息选择器
发送的时候,给消息添加一些属性;在接收的时候,根据属性进行过滤。
API
javax.jms.Message提供了一系列的方法,用于设置属性:
- setIntProperty(String name, int value):void
设置int类型的属性 - setStringProperty(String name, String value):void
设置字符串类型的属性 - setObjectProperty(String name, Object value):void
设置对象类型的属性
除此之外,还有设置boolean、byte、short、long、float、double类型的API,模式相同。
javax.jms.Session则提供了在创建MessageConsumer时指定选择器的方法:
- createConsumer(Destination destination, String messageSelector):MessageConsumer
为指定的destination创建一个consumer。只有当消息的属性满足选择器的表达式时,才会被接收;选择器为null或者空字符串时,表示没有选择器。
在发送的时候为消息指定属性,在接收的时候为Consumer指定选择器。
选择器语法
选择器是字符串类型,官方文档说,选择器的语法类似于SQL的语法。以下仅对int、String类型举例:
// 假如有int类型的属性order,而我们接收order>10的消息
String messageSelector = "order > 10"; // 假如有String类型的属性kind,而我们接收kind="06"的消息
String messageSelector = "kind='06'";
至于其他类型,多个属性是否支持逻辑运算等,就留在以后需要的时候再尝试吧。
核心代码
发送消息 |
final int NUM = 3; |
接收消息 |
String messageSelector = "order > 1"; |
最新文章
- underscore源码阅读记录(二)
- HoverTree系统源码介绍
- OpenGIS Simple feature access
- 解析PHP中的file_get_contents获取远程页面乱码的问题【转】
- Java进阶之多线程
- (转载)基于Bash命令行的百度云上传下载工具
- XMLHttpRequest2 异步 ajax
- python_利用高阶函数实现剪枝函数
- angularjs 指令详解
- ubuntu make menuconfig error
- 企业IT管理员IE11升级指南【10】—— 如何阻止IE11的安装
- SFTP远程连接服务器上传下载文件-vs2010项目实例
- 【转】ArcGIS10.0完全卸载全攻略
- rabbitmq - java client lib一二事
- 五:python 对象类型详解二:字符串(上)
- .NET:Assembly.CodeBase vs. Assembly.Location
- 尚硅谷JavaSEday18 String类练习题
- springboot的yaml基础语法与取值,配置类,配置文件加载优先级
- 宝塔Linux常用命令
- Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步
热门文章
- [Leetcode] subsets ii 求数组所有的子集
- 洛谷 P2893 [USACO08FEB]修路Making the Grade 解题报告
- [洛谷P2016] 战略游戏 (树形dp)
- [hdu 4417]树状数组+离散化+离线处理
- [poj 2104]主席树+静态区间第k大
- c++ 公有继承的赋值兼容规则
- React 使用 fetch 请求天气
- 在eclipse中使用JUnit4,以及使用JUnit4进行单元测试的技巧
- eclipse 4.2生成wsdl 客户端
- 图论:2-SAT