<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    有狀態(tài)bean

    Posted on 2009-05-16 10:38 林光炎 閱讀(716) 評(píng)論(0)  編輯  收藏

    實(shí)戰(zhàn)EJB系列



    在以后的日子里,將由Jackliu向大家陸續(xù)提供一系列EJB教程,有學(xué)習(xí)EJB的朋友請(qǐng)同步參考EJB相關(guān)書(shū)籍,實(shí)戰(zhàn)系列將以例程的方式幫助你理解這些基本的概念,其中將包括:



    專(zhuān)稿:實(shí)戰(zhàn)EJB之三 開(kāi)發(fā)會(huì)話(huà)Bean(有狀態(tài)會(huì)話(huà)Bean)(圖一) 點(diǎn)擊查看大圖

    所有章節(jié)完畢后將制作成pdf電子文檔,供大家下載。



    實(shí)戰(zhàn)EJB之三 開(kāi)發(fā)會(huì)話(huà)Bean(有狀態(tài)會(huì)話(huà)Bean)


    會(huì)話(huà)Bean可以分為有狀態(tài)會(huì)話(huà)Bean(stateful Bean)和無(wú)狀態(tài)會(huì)話(huà)Bean(stateless Bean),有狀態(tài)會(huì)話(huà)Bean可以在客戶(hù)訪問(wèn)之間保存數(shù)據(jù),而無(wú)狀態(tài)會(huì)話(huà)Bean不會(huì)在客戶(hù)訪問(wèn)之間保存數(shù)據(jù)。兩者都實(shí)現(xiàn)了Javax.ejb.SessionBean接口,EJB容器區(qū)通過(guò)部署文件ejb-jar.XML來(lái)判定是否為一個(gè)SessionBean提供保存狀態(tài)的服務(wù),另外,在程序?qū)崿F(xiàn)上,無(wú)狀態(tài)Bean不能聲明實(shí)例變量,每個(gè)方法只能操作方法傳來(lái)的參數(shù),假如需要在引用期間維持一些數(shù)據(jù)狀態(tài),以在其他方法中可以引用,則可以把Bean設(shè)計(jì)成有狀態(tài)會(huì)話(huà)Bean。在第二節(jié)中我們用一個(gè)SatatelessDate
    Bean例子描述了開(kāi)發(fā)無(wú)狀態(tài)會(huì)話(huà)Bean的過(guò)程及特性,下面的一節(jié)將介紹關(guān)于有狀態(tài)會(huì)話(huà)Bean的一些特性和壽命周期,并用一個(gè)例子來(lái)證實(shí)這些特性。


    在本節(jié)中你將了解到:



    什么是有狀態(tài)Session Bean?
    有狀態(tài)Session Bean壽命周期
    編寫(xiě)一個(gè)有狀態(tài)Session Bean程序
    部署到應(yīng)用服務(wù)器
    開(kāi)發(fā)和部署測(cè)試程序
    運(yùn)行測(cè)試程序

    什么是有狀態(tài)Session Bean?


    有狀態(tài)會(huì)話(huà)Bean(Stateful Session Bean)就是在客戶(hù)引用期間維護(hù)Bean中的所有實(shí)例數(shù)據(jù)的狀態(tài)值,這些數(shù)據(jù)在引用期間可以被其他方法所引用,其他客戶(hù)不會(huì)共享同一個(gè)Session
    Bean的實(shí)例。Bean的狀態(tài)被保存到臨時(shí)存儲(chǔ)體中,因?yàn)锽ean是可以被序列化的,所以同樣也可以把一個(gè)Bean狀態(tài)保存到文件系統(tǒng)或數(shù)據(jù)庫(kù)中。因?yàn)樵谡{(diào)用方法時(shí)需要維護(hù)狀態(tài)(這部分是有開(kāi)銷(xiāo)的),所以只有需要維護(hù)客戶(hù)狀態(tài)時(shí)才使用有狀態(tài)會(huì)話(huà)Bean。典型的會(huì)話(huà)Bean是購(gòu)物車(chē),當(dāng)一個(gè)客戶(hù)第一次打開(kāi)購(gòu)物車(chē)時(shí),系統(tǒng)為他分配一個(gè)購(gòu)物車(chē)的會(huì)話(huà)Bean,在以后,每當(dāng)客戶(hù)選購(gòu)了商品將改變購(gòu)物車(chē)的商品記錄,而這些記錄數(shù)據(jù)將保存到用戶(hù)會(huì)話(huà)數(shù)據(jù)中。


    有狀態(tài)Session Bean壽命周期


    有狀態(tài)Session Bean壽命周期由容器控制,Bean的客戶(hù)并不實(shí)際擁有Bean的直接引用,當(dāng)我們部署一個(gè)EJB時(shí),容器會(huì)為這個(gè)Bean分配幾個(gè)實(shí)例到組件池(component
    pooling)中,當(dāng)客戶(hù)請(qǐng)求一個(gè)Bean時(shí),J2EE服務(wù)器將一個(gè)預(yù)先被實(shí)例化的Bean分配出去,在客戶(hù)的一次會(huì)話(huà)里,可以只引用一次Bean,就可以執(zhí)行這個(gè)Bean的多個(gè)方法。假如又有客戶(hù)請(qǐng)求同樣一個(gè)Bean,容器檢查池中空閑的Bean(不在方法中或事務(wù)中,假如一個(gè)客戶(hù)長(zhǎng)時(shí)間引用一個(gè)Bean但執(zhí)行一個(gè)方法后需要等待一段時(shí)間再執(zhí)行另一個(gè)方法,則這段時(shí)間也是空閑的),假如全部的實(shí)例都已用完則會(huì)自動(dòng)生成一個(gè)新的實(shí)例放到池中,并分配給請(qǐng)求者。當(dāng)負(fù)載減少時(shí),池會(huì)自動(dòng)治理Bean實(shí)例的數(shù)量,將多余的實(shí)例從池中釋放。


    有狀態(tài)會(huì)話(huà)Bean的壽命周期比無(wú)狀態(tài)會(huì)話(huà)Bean更加的復(fù)雜,有狀態(tài)會(huì)話(huà)Bean有四種狀態(tài):



    不存在
    方法現(xiàn)成
    事務(wù)中方法現(xiàn)成
    鈍化

    如圖3-1所示:



    專(zhuān)稿:實(shí)戰(zhàn)EJB之三 開(kāi)發(fā)會(huì)話(huà)Bean(有狀態(tài)會(huì)話(huà)Bean)(圖二)

    <圖3-1>


    有狀態(tài)會(huì)話(huà)Bean的初始化狀態(tài)為不存在,當(dāng)有客戶(hù)引用一個(gè)Bean時(shí),按照順序調(diào)用newInstance()、setSessionContext()和ejbCreate()方法,與第一節(jié)中講到的無(wú)狀態(tài)調(diào)用順序相同。當(dāng)處于方法現(xiàn)成狀態(tài)時(shí),假如客戶(hù)調(diào)用remove()方法,則回到不存在狀態(tài),并觸發(fā)Bean的ejbRemove()方法。假如客戶(hù)長(zhǎng)時(shí)間不調(diào)用Bean或服務(wù)器預(yù)備釋放一些內(nèi)存資源,則容器將這些Bean從組件池中鈍化,鈍化過(guò)程容器將調(diào)用Bean的ejbPassivate()方法,使程序員有機(jī)會(huì)在鈍化Bean時(shí)釋放分配的資源。當(dāng)一個(gè)客戶(hù)請(qǐng)求一個(gè)被鈍化的Bean時(shí),容器可以激活Bean,激活過(guò)程容器將調(diào)用ejbActivate()放,使程序員有機(jī)會(huì)在Bean轉(zhuǎn)到方法現(xiàn)成狀態(tài)時(shí)分配Bean所需的資源。


    posts - 104, comments - 33, trackbacks - 0, articles - 0

    Copyright © 林光炎

    主站蜘蛛池模板: 国产成人亚洲精品播放器下载| 性感美女视频免费网站午夜| 麻豆亚洲AV成人无码久久精品 | 国产aⅴ无码专区亚洲av麻豆| 毛片免费全部免费观看| 久久午夜无码免费| 一级做a爰全过程免费视频毛片| 中文字幕无码精品亚洲资源网久久| 亚洲国产精彩中文乱码AV| 免费在线观看a级毛片| 毛片免费在线视频| 免费视频爱爱太爽了| 男人的天堂网免费网站| 久久www免费人成精品香蕉| 老妇激情毛片免费| 亚洲av日韩aⅴ无码色老头| 7777久久亚洲中文字幕| 亚洲精品国产情侣av在线| 亚洲精品国产成人99久久| 亚洲人成图片小说网站| 亚洲精品NV久久久久久久久久| 日韩视频免费在线| 天天摸天天碰成人免费视频| 国产精品久久久久久久久久免费| 中文字幕成人免费视频| 久久国产乱子伦免费精品| 久久亚洲免费视频| 性色午夜视频免费男人的天堂| 中文字幕a∨在线乱码免费看| sss日本免费完整版在线观看| 日韩大片在线永久免费观看网站| 免费福利在线观看| 亚洲免费在线观看| 中文字幕不卡免费高清视频| 大地资源在线资源免费观看 | 亚洲日本一区二区三区在线| 综合亚洲伊人午夜网| 国产亚洲真人做受在线观看| 国产午夜亚洲不卡| 亚洲Av无码精品色午夜| 亚洲视频在线观看网址|