EJB之Local與Remote

 

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 應用客戶端的調用。

使用總結

  1. 若是你的 EJB 客戶與 EJB 處於同一個JVM環境中時,你能夠只生成 local 類型接口(包括EJBHome 與EJBObject),若是你須要在與EJB容器不一樣的JVM環境中調用你的EJB的話,你必須生成Remote類型的接口(包括EJBHome 與 EJBObject);
  2. 在通常狀況下建議兩種類型的接口都生成。尤爲是Session Bean,Entity Bean,能夠只生成local類型的接口,若是想遠程調用你的Entity Bean通常用Session Bean作代理
  3. 若是你不是遠程調用EJB的話,使用EJB時建議調用local接口,這樣效率高,由於遠程調用就意味着創建網絡鏈接,效率必然不如local調用。

generated by haroopadcss

相關文章
相關標籤/搜索