**1、EJB容器提供的服務 主要提供聲明周期管理、代碼產(chǎn)生、持續(xù)性管理、安全、事務管理、鎖和并發(fā)行管理等服務。 2、EJB的角色和三個對象 EJB角色主要包括Bean開發(fā)者 應用組裝者 部署者 系統(tǒng)管理員 EJB容器提供者 EJB服務器提供者 三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean類 2、EJB的幾種類型 會話(Session)Bean ,實體(Entity)Bean 消息驅(qū)動的(Message Driven)Bean 會話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種 實體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種 3、bean 實例的生命周期 對于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩沖池管理,而對于Entity Bean和Statefull Session Bean存在Cache管理,通常包含創(chuàng)建實例,設置上下文、創(chuàng)建EJB Object(create)、業(yè)務方法調(diào)用、remove等過程,對于存在緩沖池管理的Bean,在create之后實例并不從內(nèi)存清除,而是采用緩沖池調(diào)度機制不斷重用實例,而對于存在Cache管理的Bean則通過激活和去激活機制保持Bean的狀態(tài)并限制內(nèi)存中實例數(shù)量。 4、激活機制 以Statefull Session Bean 為例:其Cache大小決定了內(nèi)存中可以同時存在的Bean實例的數(shù)量,根據(jù)MRU或NRU算法,實例在激活和去激活狀態(tài)之間遷移,激活機制是當客戶端調(diào)用某個EJB實例業(yè)務方法時,如果對應EJB Object發(fā)現(xiàn)自己沒有綁定對應的Bean實例則從其去激活Bean存儲中(通過序列化機制存儲實例)回復(激活)此實例。狀態(tài)變遷前會調(diào)用對應的ejbActive和ejbPassivate方法。 5、remote接口和home接口主要作用 remote接口定義了業(yè)務方法,用于EJB客戶端調(diào)用業(yè)務方法 home接口是EJB工廠用于創(chuàng)建和移除查找EJB實例 6、客服端調(diào)用EJB對象的幾個基本步驟 一、 設置JNDI服務工廠以及JNDI服務地址系統(tǒng)屬性 二、 查找Home接口 三、 從Home接口調(diào)用Create方法創(chuàng)建Remote接口 四、 通過Remote接口調(diào)用其業(yè)務方法 |
|
來自: 昵稱22369024 > 《IT技術》