EJB2與EJB3
EJB(enterprisejavabeans)是javaee(Java平臺,企業版)規範中的javaapi(應用程序編程接口)。EJB描述了企業應用程序開發的體系結構模型。這是一個託管服務器端模型,能夠捕獲企業應用程序的業務邏輯。IBM是EJB的最初創建者,在1997年開發了它。太陽微系統公司在1999年採用了它。
在引入EJB之前,人們發現對後端業務代碼中發現的問題的解決方案經常由程序員重新實現。因此,引入EJB來解決這些常見問題,如持久性、事務完整性和安全性。EJB提供了處理這些後端問題的標準方法,通過指定應用服務器應該如何處理事務、如何與JPA(Java持久性API)服務集成、處理併發控制、處理JMS(Java消息服務)事件、用JNDI(Java命名和目錄接口)解決命名問題、開發安全程序通過JCE(Java密碼擴展)和JAAS(Java認證和授權服務),部署組件,與RMI-IIOP(Internet-Orb協議上的Java遠程方法調用接口)進行遠程通信,開發web服務,調用異步方法,使用定時器服務。
EJB2型
EJB2(EJB2.0)於2001年8月22日發佈。它描述了通過結合不同供應商開發的工具來用Java開發分佈式面向對象應用程序的規範。EJB2的主要目標之一是允許程序員更容易地開發企業應用程序,而不必瞭解底層細節,如多線程和連接池。另一個目標是允許程序員只編寫一次“Bean”就可以在任何地方運行而無需重新編譯(遵循Java編程語言的“只寫一次,到處運行”的口號)。此外,EJB2旨在允許不同供應商開發的組件輕鬆地進行互操作,並允許供應商為其產品編寫支持ejb的擴展。
EJB3型
EJB3(EJB3.0)於2006年5月11日發佈。EJB3允許程序員使用註釋來代替以前版本中使用的部署描述符,從而使他們的生活變得非常簡單。EJB3包含一個業務接口和一個可以實現該業務接口的特定實體bean,從而消除了使用home/remote接口和ejb的需要-jar.xml文件文件。與EJB2相比,EJB3的總體性能有了很大的提高,在這個版本的EJB中,它在可配置性、靈活性和可移植性方面有了很大的提高。
EJB2和EJB2有什麼區別?
與EJB2相比,EJB3在配置和性能方面有顯著的改進。這種性能改進的一個原因是EJB3將POJO(普通的舊Java對象)與元數據和XML部署描述符一起使用,而不是EJB2中用於對象引用的JNDI查找。EJB3的配置要簡單得多,因為程序員不需要實現Home/Remote接口和其他接口(例如SessionBean),這樣就不需要使用容器回調方法(比如ejbActivate和ejbStore)。
此外,EJB3在靈活性和可移植性方面優於EJB2。例如,很容易將EJB3實體轉換為DAO(數據訪問對象),反之亦然,因為EJB3實體是輕量級的(與實現上述接口的重量級EJB2實體相反)。用EJB3編寫的數據庫查詢非常靈活,因為它使用了一個改進的EJB-QL,而不是EJB-QL的舊版本,後者有幾個限制。EJB3通過為所有數據事務支持更通用的JPA,消除了EJB2(使用實體bean進行數據庫訪問)的所有可移植性問題。