日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

JMS学习(三)JMS 消息结构之属性及消息体详解

發(fā)布時(shí)間:2023/12/19 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 JMS学习(三)JMS 消息结构之属性及消息体详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

通過(guò)上一篇的學(xué)習(xí)我們知道了消息分為三個(gè)部分,即消息頭,屬性及消息體,并對(duì)消息頭的十個(gè)屬性進(jìn)行了詳細(xì)的介紹,本文再對(duì)消息屬性及消息體進(jìn)行詳細(xì)的介紹。

二、屬性介紹

消息屬性的主要作用是可以對(duì)頭信息進(jìn)行一個(gè)額外的補(bǔ)充,畢竟消息頭信息一是有限,二是很多不能由應(yīng)用程序設(shè)定。通常,消息屬性可以用在消息選擇器的表達(dá)式里,結(jié)合起來(lái)實(shí)現(xiàn)對(duì)消息的過(guò)濾。

消息屬性的值只能是基本的類型,或者這些基本類型對(duì)應(yīng)的包裝類型。也就是說(shuō),不能將一個(gè)自定義的對(duì)象作為屬性值。通常情況下,如果能夠放在body里的內(nèi)容,就不必放在消息屬性里。

消息屬性按類型可以分為標(biāo)準(zhǔn)屬性(JMSX作為前綴),消息組件自定義的屬性(JMS_作為前綴),以及應(yīng)用自定義的屬性。自定義的屬性不要以前面兩種為前綴。

  標(biāo)準(zhǔn)的JMSX屬性如下表:

  

  其中,JMSXGroupID和JMSGroupSeq是客戶端可以設(shè)置的。消息的屬性一旦設(shè)置,且消息發(fā)送后,就會(huì)變成只讀的,將不能再被修改。

  跟頭信息的設(shè)置不同的是,對(duì)于這些標(biāo)準(zhǔn)屬性,JMS并不要求消息中間件必須設(shè)置這些屬性,所以這些屬性的值可能是存在的,也可能為空,而且經(jīng)測(cè)試大部分的標(biāo)準(zhǔn)屬性都可以由應(yīng)用程序自行設(shè)置,就像自定義的屬性一樣。

三、消息體

  為了適應(yīng)不同場(chǎng)景下的消息,提高消息存儲(chǔ)的靈活性,JMS定義了幾種具體類型的消息,不同的子類型的消息體也不一樣,需要注意的是,Message接口并沒(méi)有提供一個(gè)統(tǒng)一的getBody之類的方法。消息子接口定義如下:

  1)TextMessage: 最簡(jiǎn)單的消息接口,用于發(fā)送文本類的消息,設(shè)置/獲取其body的方法定義如下setText()/getText().

  2)StreamMessage: 流式消息接口,里面定義了一系列的對(duì)基本類型的set/get方法,消息發(fā)送者可以通過(guò)這些方法寫(xiě)入基本類型的數(shù)據(jù),消息接收者需要按發(fā)送者的寫(xiě)入順序來(lái)讀取相應(yīng)的數(shù)據(jù)。

  3)MapMessage:把消息內(nèi)容存儲(chǔ)在Map里,本接口定義了一系列對(duì)基本類型的的set/get方法,與StreamMessage不同的是,每個(gè)值都對(duì)應(yīng)了一個(gè)相應(yīng)的key,所以消息接收者不必按順序去讀取數(shù)據(jù)。

  4)ObjectMessage: 將對(duì)象作為消息的接口,提供了一個(gè)set/get 對(duì)象的方法,需要注意的是只能設(shè)置一個(gè)對(duì)象,這個(gè)對(duì)象可以是一個(gè)Collection,但必須是序列化的。

  5)BytesMessage:以字節(jié)的形式來(lái)傳遞消息的接口,除了提供了對(duì)基本類型的set/get,還提供了按字節(jié)方式進(jìn)行set/get。

三、小結(jié)

  消息屬性是對(duì)消息頭信息的一種補(bǔ)充,相對(duì)來(lái)說(shuō)更加靈活,通常情況下,我們不應(yīng)該依賴標(biāo)準(zhǔn)的屬性值,如果應(yīng)用需要,我們也應(yīng)該自定義所需要的屬性值。

JMS提供的5種子消息接口讓我們?cè)诎l(fā)送消息時(shí)有了更多的選擇,可以根據(jù)應(yīng)用的實(shí)際需要來(lái)選擇對(duì)應(yīng)的子接口。

總結(jié)

以上是生活随笔為你收集整理的JMS学习(三)JMS 消息结构之属性及消息体详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。