2012-01-30 58 views
2

我讀到的最佳實踐爲EJB的JNDI映射這篇大文章:瞭解EJB鏈接標記

http://www.ibm.com/developerworks/websphere/library/bestpractices/increase_app_portability.html

的ejb-link的概念並不清楚我。

例如,假設我們有一個包含這一個ejb-jar.xml中:

<ejb-ref> 
    <ejb-ref-name>ejb/Bean2Home</ejb-ref-name> 
    <ejb-ref-type>Entity</ejb-ref-type> 
    <home>com.ibm.wsc.Bean2Home</home> 
    <remote>com.ibm.wsc.Bean2</remote> 
    <ejb-link>Bean2</ejb-link> 
</ejb-ref> 

因此,它是一種高精度的目標EJB組件Bean2和這個簡單的符號意味着Bean2必須找到這個J2EE應用程序包或.ear文件。

因此,如果ejb-link標記足以確定鏈接到良好EJB組件的正確方式,那麼彙編程序需要爲此ejb-ref創建一個JNDI名稱?

它真的有用嗎?

回答

2

這裏有一些場景是希望澄清爲什麼<ejb-link/>(或@EJB(beanName="..."))和EJB參考的綁定都是有用的和互補的:

  1. 應用程序可以本身邏輯上分解爲組件,開發人員選擇使用EJB來實現這些組件。在這種情況下,應用程序開發人員知道客戶端要使用的目標EJB組件。如果有多個組件實現相同的接口,則需要一些消歧,並且可以使用<ejb-link/>

  2. 應用程序依賴於外部服務。在這種情況下,應用程序知道它依賴於外部服務,所以不能使用<ejb-link/>,因爲服務實現不存在於同一個應用程序中。

  3. 應用程序對外部服務具有依賴性,但在同一應用程序中提供了最小的實現。在這種情況下,開發人員可能會使用#1中的<ejb-link/>,但部署人員可以靈活地在#2中覆蓋該選項。