国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

專稿:實戰EJB之二 開發會話Bean(無狀態會話Bean)

2019-11-18 15:25:02
字體:
來源:轉載
供稿:網友

實戰EJB系列



在以后的日子里,將由Jackliu向大家陸續提供一系列EJB教程,有學習EJB的朋友請同步參考EJB相關書籍,實戰系列將以例程的方式幫助你理解這些基本的概念,其中將包括:



專稿:實戰EJB之二 開發會話Bean(無狀態會話Bean)(圖一)
點擊查看大圖


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


實戰EJB之二 開發會話Bean(無狀態會話Bean)


會話Bean可以分為有狀態會話Bean(stateful Bean)和無狀態會話Bean(stateless Bean),有狀態會話Bean可以在客戶訪問之間保存數據,而無狀態會話Bean不會在客戶訪問之間保存數據。兩者都實現了javax.ejb.sessionBean接口,EJB容器區通過部署文件ejb-jar.xml來判定是否為一個SessionBean提供保存狀態的服務,另外,在程序實現上,無狀態Bean不能聲明實例變量,每個方法只能操作方法傳來的參數。實際上,我們第一節中的第一個EJB程序就是一個無狀態Session
Bean。


在本節中你將了解到:



  • 什么是無狀態Session Bean?
  • 無狀態Session Bean壽命周期
  • 編寫一個無狀態Session Bean程序
  • 部署到應用服務器
  • 開發和部署測試程序
  • 運行測試程序

什么是無狀態Session Bean?


無狀態Session Bean每次調用只對客戶提供業務邏輯,但不保存客戶端的任何數據狀態。但并不意味著stateless類型的Bean沒有狀態,而是這些狀態被保持在客戶端,容器不負責治理。如《再別康橋》中寫到的"靜靜的我走了,正如我靜靜的來。揮一揮衣袖,不帶走一片云彩"。


無狀態Session Bean在EJB中是最簡單的一種Bean,假如數據實際上是數據的瞬像,則建議使用無狀態會話Bean。但是無狀態會話Bean也有自己的問題,本該存儲在服務器端(J2EE服務器)的數據被存儲在客戶中,每次調用這些數據都要以參數的方式傳遞給Bean,假如是一個比較復雜的數據集合,則網絡需要傳遞大量數據,造成更多的負載。在客戶端維護狀態還要注重安全性問題,假如數據狀態非常敏感,則不要使用無狀態會話Bean,這些情況可以使用狀態會話Bean,將用戶狀態保存到服務器中。


無狀態Session Bean壽命周期


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



專稿:實戰EJB之二 開發會話Bean(無狀態會話Bean)(圖二)


<圖2-1>


當客戶端不存在一個無狀態Session Bean時,通過遠程主接口的create()方法創建一個Bean,newInstance()負責將Bean實例化,EJB容器調用Bean類的setSessionContext()方法把運行環境對象SessionContext傳遞給Bean;隨后調用Bean的ejbCreate方法進行必要的初始化和資源分配。在下面這個實戰例子中,Bean的實現類就是StatelessDateEJB類。


編寫一個無狀態的Session Bean程序


這個Session Bean組件提供一個日期計算器,通過getDayInRange()方法計算兩個日期之間相差的天數,通過getDayForOlympic()得到距離北京申辦2008年奧林匹克運動會天數。并且我們為這個Bean起名為StatelessDate


設計一個無狀態的Session Bean至少包括四個步驟:



  1. 開發主接口
  2. 開發組件接口
  3. 開發Bean實現類
  4. 編寫部署文件



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岢岚县| 周口市| 绥中县| 晋城| 监利县| 石渠县| 凤城市| 安丘市| 百色市| 建昌县| 奈曼旗| 綦江县| 平顺县| 清水河县| 扬州市| 娄底市| 旬邑县| 松桃| 台南县| 东乌珠穆沁旗| 昭平县| 新宁县| 竹山县| 苏尼特左旗| 城固县| 肇东市| 海门市| 乐亭县| 保靖县| 都江堰市| 星座| 博白县| 炉霍县| 宁津县| 巫溪县| 白山市| 琼海市| 旅游| 湖南省| 溧水县| 安岳县|