在本文裡,我們將對企業版JavaBean進行討論,以幫助消除你對創建自己第一個EJB的恐懼感,並幫助你步入EJB開發的世界。
安裝EJB運行和開發環境
EJB必須要在EJB容器內執行。所以,我們必須安裝一個符合J2EE標准的EJB容器。為了幫助我們部署自己的EJB,我們還需要一個部署工具。來自Sun的、對J2EE的參考實現包含了一個EJB容器和一個EJB部署工具。這個J2EE參考實現能夠在Sun發布的J2EE開發工具包裡找到。
J2EE開發包要依靠Java 2 SDK、標准版(Standard Edition,J2SE)的開發包,所以你也需要把它下載下來。你需要J2SE SDK 來運行參照實現的J2EE服務器,並創建和運行EJB應用程序。
一旦你下載了開發包,你就要安裝它們,並為每個開發包選擇理想的位置。你要先定義一個叫作JAVA_HOME的環境變量,並將它指向J2SE開發包的安裝目錄。然後,定義一個叫做J2EE_HOME的環境變量,並把它指向J2EE開發包的安裝目錄。
現在你就准備好開始編寫你的EJB了。
編寫一個簡單會話EJB
開發一個EJB所涉及的大多數步驟和概念和我們開發傳統的Java對象(plain-old Java object,POJO)所使用的是相同的,只有少數的不同之處。下面就是開發和部署EJB的一個基本步驟:
1. 為你的EJB編寫類和接口。
2. 為你的EJB編寫部署描述符。
3. 將EJB和相關聯的文件打包進一個jar文件。
4. 部署EJB。
會話bean有兩種不同的類型。在我們開始編寫代碼之前,讓我們來看看它們之間的相同之處和不同之處。
狀態會話EJB概述
狀態會話EJB會在單個會話期間維持一種和客戶端的對話狀態。這就表示狀態會話EJB能夠在單個會話期間,維持從一個客戶端跨越多個調用的實例變量。
一旦客戶端完成了同EJB的交互操作,而且EJB容易刪除了EJB,那麼EJB的會話就會結束,用於EJB的所有狀態數據都會被刪除。
無狀態會話EJB概述
無狀態會話EJB不會為每個單獨的客戶端都維持一個對話狀態。對無狀態會話EJB的每次調用,都應該被當作是對一個全新的對象實例的請求。因為任何實例-變量狀態都會在調用之間丟失。
無狀態會話EJB不會被EJB容器保存到第二存儲地裡,所以程序員必須要知道:每個客戶端的每次調用之間的所有數據都是瞬時的。無狀態會話EJB的瞬時特性允許EJB容器重復使用EJB實例,因此常常會優化EJB的性能。
會話Bean之間的關系
圖A說明了EJB客戶端、EJB容器和幾個會話EJB之間的關系。