EJB接口之Local與Remote
發佈EJB時,能夠選擇每一個接口的訪問方式:本地訪問或遠程訪問。顧名思義,本地訪問就是指調用者在與EJB同一臺機器(JVM)中訪問EJB,不然就是遠程訪問了。在一個EJB中,Remote與Local可以同時使用,可是須要配置各自的value屬性,且一個接口只能用一種註解標註php
Local 接口
- 註解爲」@Local」的接口稱爲本地接口(或者@Local和@Remote都不存在時,默認爲Local接口)。
- 因爲在同一個JVM中運行,調用者調用EJB時,直接查找地址訪問EJB,快速。
- 訪問的是服務端的EJB自己。
- 若須要傳入對象作參數,對象能夠不用實現序列化接口。
- 經常使用於同一個EJB中 Session Bean 和 Entity Bean 之間的相互調用
Remote 接口
- 註解爲」@Remote」的接口稱爲本地接口
- 以RMI(Remote Method Invocation 遠程方法調用)的方式實現調用,參考連接
- 訪問的是EJB的拷貝。
- 若須要傳入對象作參數,對象必須實現序列化接口。
- 經常使用於 servlet/jsp 或 Java 應用客戶端的調用。
使用總結
- 若是你的 EJB 客戶與 EJB 處於同一個JVM環境中時,你能夠只生成 local 類型接口(包括EJBHome 與EJBObject),若是你須要在與EJB容器不一樣的JVM環境中調用你的EJB的話,你必須生成Remote類型的接口(包括EJBHome 與 EJBObject);
- 在通常狀況下建議兩種類型的接口都生成。尤爲是Session Bean,Entity Bean,能夠只生成local類型的接口,若是想遠程調用你的Entity Bean通常用Session Bean作代理
- 若是你不是遠程調用EJB的話,使用EJB時建議調用local接口,這樣效率高,由於遠程調用就意味着創建網絡鏈接,效率必然不如local調用。
generated by haroopadcss