欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
J2EE企業(yè)級開(kāi)發(fā)學(xué)習筆記(11)

J2EE企業(yè)級開(kāi)發(fā)學(xué)習筆記(11)

消息驅動(dòng)Bean

 

1、消息:實(shí)質(zhì)就是發(fā)送消息。將數據單元從一個(gè)過(guò)程發(fā)送到另一個(gè)過(guò)程。消息可以是已發(fā)生的事件、數據請求或答復查詢(xún)。

 

2、消息驅動(dòng)Bean:被設計層一種使用異步消息的J2EE組件(另一個(gè)J2EE實(shí)體)。通信樣式提供了與常規的同步操作調用樣式不同的優(yōu)點(diǎn):如與大量事件或數據進(jìn)行通信。本質(zhì)上JMS消息接收器。

 

3、在J2EE中,通信和消息驅動(dòng)Bean需要使用JMS(Java Message Service JAVA消息服務(wù))。

 

4、JMS:是一種J2EE APIs.它給基于消息的系統提供了一個(gè)API。J2EE1.3中的消息驅動(dòng)Beans必須使用JSM進(jìn)行通信。支持兩種類(lèi)型的通信:(1)點(diǎn)對點(diǎn)(一個(gè)客戶(hù)消息發(fā)送者,另一個(gè)客戶(hù)消息接收者,通過(guò)消息隊列進(jìn)行處理,如email系統或郵政系統)(2)發(fā)送-預定(多個(gè)應用程序可以發(fā)送消息或接收消息,消息可以是由一個(gè)或多個(gè)發(fā)送者以一個(gè)主題發(fā)送,而所有預定了該主題的客戶(hù)都可以接收到這個(gè)主題,如Web論壇)

 

5、企業(yè)使用消息驅動(dòng)Bean原因:耦合、集成(松散耦合系統)、效率。

 

6、何時(shí)使用消息驅動(dòng)Bean:

  •   把原來(lái)的應用程序集成到基于J2EE的企業(yè)級應用中。無(wú)需重寫(xiě)整個(gè)應用程序,只需用消息驅動(dòng)Bean將原來(lái)的應用程序打包。
  •   應用程序需要可以脫機傳送的低級服務(wù)(即使應該提供該服務(wù),主要工作流程也沒(méi)必要停下來(lái)等服務(wù)完成)
  •   提供一種方便機制(發(fā)送-預定):允許將同一條信息傳送給多個(gè)接收者。

 

7、消息驅動(dòng)Bean結構:一個(gè)主要Java類(lèi)(實(shí)現類(lèi)或消息驅動(dòng)Bean類(lèi))

   客戶(hù)視圖:客戶(hù)不能直接查看消息驅動(dòng)Bean,客戶(hù)與EJB容器為每個(gè)已部署的組件所提供的JMS目標有聯(lián)系。除了這點(diǎn)就沒(méi)有接口展示給客戶(hù)。



8、消息驅動(dòng)Bean工作原理:所有與消息驅動(dòng)Bean的通信用的都是異步消息。這種消息應該屬于javax.jms.message或它的一個(gè)子代。由于客戶(hù)不會(huì )看到消息驅動(dòng)Bean本身,所以就不能把消息發(fā)送到特定的消息驅動(dòng)Bean上,它只是在確定消息后將它發(fā)送到一個(gè)特定的目標中。消息驅動(dòng)Bean就是從它相關(guān)聯(lián)的目標中獲得消息,然后對消息進(jìn)行處理。

 

 9、 JMS支持2種類(lèi)型的消息目標(Destination):主題、隊列。

  主題(Topic):發(fā)送-預定樣式。多個(gè)客戶(hù)可以發(fā)送一個(gè)主題,預定同一個(gè)主題的多個(gè)消息驅動(dòng)Bean也可以依次接收消息??梢允情L(cháng)期預定也可以是臨時(shí)預定一個(gè)主題。長(cháng)期預定即要求即使不存在消息驅動(dòng)Bean,發(fā)送到主題的消息也要傳遞出去。構建可靠而又可用的系統時(shí)使用臨時(shí)預定。

  隊列(Queue):雖然可以允許多個(gè)發(fā)送者發(fā)送消息到隊列中,但在接收端只有一個(gè)單一消息驅動(dòng)Bean。發(fā)送者將消息按順序發(fā)送到隊列中,消息驅動(dòng)Bean也以相同的順序從隊列中接收并處理消息。

  {Destination=Topic}或{Destination=Queue}這樣標記UML模型值可以實(shí)現對消息目標建模。



10、消息驅動(dòng)Bean技術(shù):

  事務(wù)處理:對于所有其他EJB,事務(wù)處理屬性通常設置在客戶(hù)能調用的方法中。對消息驅動(dòng)Bean來(lái)說(shuō),onMessage是唯一具有這些設置的方法,客戶(hù)只能間接調用它。

  實(shí)現類(lèi):包含所有EJB所要實(shí)現的方法,包括生存周期方法。如下面這些方法:

  setMessageDrivenContext:這個(gè)方法必須存在,可以被EJB調用。它允許EJB存儲本地實(shí)例變量中的環(huán)境信息。

  ejbCreate:應該只有一個(gè)具有這個(gè)名稱(chēng)的方法,沒(méi)有參數也沒(méi)返回類(lèi)型。用以創(chuàng )建消息驅動(dòng)Bean的新實(shí)例。

  ejbRemove:應該只有一個(gè)具有這個(gè)名稱(chēng)的方法,沒(méi)有參數也沒(méi)返回類(lèi)型。用以刪除消息驅動(dòng)Bean的實(shí)例。

  onMessage:應該只有一個(gè)具有這個(gè)名稱(chēng)的方法,有一個(gè)單個(gè)參數,即JMS消息,沒(méi)有返回類(lèi)型。用以處理所有的JMS消息。EJB的業(yè)務(wù)邏輯駐留在這個(gè)方法中,最起碼可以從這個(gè)方法中調用。

  其他類(lèi):用于幫助支持onMessage方法中的業(yè)務(wù)邏輯。另外,必須的MessageDrivenContext域也是實(shí)現類(lèi)的一部分。

一個(gè)消息驅動(dòng)Bean實(shí)現代碼:

  import javax.jms.Message;

  import javax.jms.MessageListener;

  import javax.jms.TextMessage;

  public class LogBean implements javax.ejb.MessageDrivenBean,javax.jms.MessageListener{

   private javax.ejb.MessageDrivenContext ctx;

   public LogBean(){}

   public void setMessageDrivenContext(javax.ejb.MessageDrivenContext context){

    ctx=context;

   }

   public void ejbCreate() throws javax.ejb.EJBException,javax.ejb.CreateException{}

   public void ejbRemove() throws javax.ejb.EJBException{}

   public void onMessage(javax.jms.Message msg){

     try{

           TextMessage tm = (TextMessage)msg;

           String text =tm.getText();

           //logging specific code here

        }catch(Exception ex){

        //exception handling code here

       }

   }

 }

 

11、消息驅動(dòng)Bean的生命周期:

   EJB為所部署的每個(gè)消息驅動(dòng)Bean創(chuàng )建一個(gè)實(shí)例池(池大小和行為由各個(gè)不同服務(wù)器的設置控制),收到JMS消息時(shí),EJB容器只將消息發(fā)送到池中的已有實(shí)例中并調用onMessage方法,該方法結束時(shí),實(shí)例就返回到池中。

   

 

12、使用消息驅動(dòng)Bean的條件:

    客戶(hù)為消息驅動(dòng)Bean指定了JMS目標;客戶(hù)將JMS消息發(fā)送給目標

 

13、為消息驅動(dòng)Bean關(guān)系建模:

   (1)與其他類(lèi)關(guān)系建模:與之前會(huì )話(huà)Bean和實(shí)體Bean的類(lèi)似。

   (2)與其他J2EE技術(shù)關(guān)系建模:必須使用目標與消息驅動(dòng)Bean進(jìn)行通信。

 

14、在企業(yè)應用中使用消息驅動(dòng)Bean:

    基于遠程過(guò)程調用(RPC)的通信(如會(huì )話(huà)Bean所用的通信)有個(gè)缺點(diǎn):發(fā)送者必須等待響應。而基于消息的系統不會(huì )受影響,同一情況下,會(huì )話(huà)Bean和消息驅動(dòng)Bean正在通信,它只以獨立的方式進(jìn)行異步發(fā)送消息,然后再由消息驅動(dòng)Bean進(jìn)行處理。

下圖是對消息驅動(dòng)Bean在企業(yè)中的應用更直觀(guān)的方式:




 


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
使用BMT消息驅動(dòng)BEAN和SPRING進(jìn)行高性能的消息處理
用JMS進(jìn)行企業(yè)消息傳遞
EJB 筆記 -Chapter06 消息驅動(dòng)Bean
Java 和微服務(wù)系列第 4 部分 處理數據
Geronimo 中 JMS、MDB 和 ActiveMQ 的使用技巧
手把手教你如何玩轉消息中間件(ActiveMQ)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久