消息的属性就像可以分配给一条消息的附加消息头一样。它们允许开发者添加有关消息的不透明附加信息。它们还用于暴露消息选择器在消息过滤时使用的数据。
消息属性有3种基本类型:应用程序特定的属性、JMS定义的属性和提供者特定的属性。
应用程序特定的属性:
由应用程序开发者定义的所有属性都可以作为一个应用程序特定的属性。应用程序属性在消息传送之前进行设置。开发者可以自由定义能够满足他们需要的任何属性。
message.setStringProperty("username",username);
一旦一条消息发送或发布以后,它就变成了只读属性;谁都无法再修改它的属性。
JMS定义的属性:
JMS定义的属性具有和应用程序属性相同的特性,除了前者大多数在消息发送时由JMS提供者来设置之外。JMS定义的属性可以作为可选的JMS消息头。
下面是JMS定义的9个属性清单:
- JMSXUserID
- JMSXAppID
- JMSXProducerTXID
- JMSXConsumerTXID
- JMSXRcvTimestamp
- JMSXDeliveryCount
- JMSXState
- JMSXGroupID
- JMSXGroupSeq
上面的清单中,只有JMSXGroupID和JMSXGroupSeq需要所有的JMS提供者的支持。这些可选属性用于聚合信息。
提供者特定的属性:
每个JMS提供者都可以定义一组私有属性,提供者特定的属性必须以前缀JMS开头。提供者特定的属性,其作用就是支持厂商的私有特性。
扫描二维码关注公众号,回复:
3127136 查看本文章