EJB3.0历史
來源:http://shuixian.javaeye.com/blog/601335
EJB3 .0 歷 史
Java 企業版API (Java Enterprise Edition ) 中提供了對EJB 的規范。EJB 是一個封裝 有某個應用程序之業務邏輯服務器端組件。EJB 最早于1997 年 由IBM 提出,后被SUN 采用并形成標準(EJB 1.0 和EJB 1.1 )。其后在Java 社區進程(Java Community Process) 支持下陸續有一些JSR 被 制訂來定義新的EJB 標準,分別是JSR 19 (EJB 2.0 ), JSR 153 (EJB 2.1) 以及最新的JSR 220 (EJB 3.0 ) 。
由于IBM 和Sun 等EJB 提倡者力推其前景,起初一些大公司紛紛采 用EJB 部署他們的系統。然而隨后各種問題便接踵而至,對EJB 的 惡評短時間內激增。對于初學者,EJB 的API 顯 得太過困難;對于許多程序員來說,書寫那些必須拋出特定異常的接口并將bean 類作為抽象類實現的 做法既不直觀也不正常。當然,EJB 所被賦予的使命,如對象關系映射和事務管理確實有其天然復雜 性,但其API 之復雜還是令開發人員們覺得望而卻步,一些人開始懷疑EJB 除了引入了復雜的實現手段以外似乎并未帶來什么實際好處。
另外,實際運用中被發現,如果使用EJB 來 封裝業務邏輯會帶來性能上的下降。這是因為,最早的EJB 規范只允許客戶端通過特定協議(如CORBA )進行遠程方法調用,即使大部分實際應用根本就不需要分布式計算。直到EJB 2.0 才引入了本地接口,以支持可以開發 不通過網絡就能直接本地調用的EJB 系統。盡管如此,EJB 的 廣泛普及仍然為其復雜度所制約。
EJB 規范起初的一個主 要價值- 對分布式應用進行事務管理- 在隨后 的實踐中被一致認為幾乎沒能派上用場。對于企業級應用來說,Spring 和Hibernate 等簡化框架更加實用。因此,EJB 3.0 規范(JSR 220) 為了迎 合這個趨勢相比于之前進行了一次激進的大跳躍。受到Spring 影響,EJB 3.0 也使用所謂的“傳統簡單Java 對象(POJO )”;同時,支持依賴注入來簡 化全異系統的集成與配置。Hibernate 的創始人Gavin King 參與了這一新版規范的制訂,并對EJB 大加提倡。Hibernate 的許多特性也被引入到Java 持久化API 當中,從而取代原來的實體bean 。EJB 3.0 規范大幅采用Java 注釋(annotation )來對代碼進行元數 據修飾,從而消減了此前EJB 編程的冗雜性。相應地,EJB 3.0 幾乎成為了一個全新的API , 與此前的數版可謂毫無相似度可言。
以下列出了版本的具體變化:
(1)??? EJB1.0
1998 年3 月24 日發布。
n?? 定 義了EJB 和EJB 容器的作用,實現與互 動。
n?? 提 供了最早的開發者與用戶視圖。
(2)??? EJB1.1
1999 年12 月17 日發布。
n?? 開 始采用XML 部署描述符,默認的JNDI 上 下文以及可支持IIOP 的RMI 。
n?? 安 全機制由角色(Role )驅動,而非方法。
n??? 支 持實體類,且必須在應用中實現。
(3)??? EJB2.0
2001 年8 月22 日發布,JSR 19 定 義。
n?? 制 定了構建面向對象商務應用的標準組建結構。
n?? 支 持構筑使用不同開發工具所開發之組件的聯合應用部署。
n?? 在 多線程,連接池,事務管理等方面對用戶透明化。
n?? 使 符合“一次寫成,多次運行”的Java 思想。
n?? 關 注企業級應用生命期間的開發,部署,運行等動作。
n?? 定 義了不同開發工具所需遵守的契約,以便其產品能夠在運行期交互。
n?? 支 持與現行系統兼容,開發者可以擴展現有產品以使之支持EJB 。
n?? 與 其他Java API 兼容。
n?? 支 持EJB 與Java2 平臺企業版或者其他非Java 應用程序之間的互操作性。
n?? 支 持與CORBA 兼容的RMI-IIOP 。
(4)??? EJB2.1
2003 年11 月24 日發布,JSR 153 定 義。
n??? Web 服務:可將無狀態會話bean 暴露 為Web 服務;EJB 可通過引用訪問Web 服務。
n??????? EJB 定時器服務:提供一種新的基于定時器的事件驅動方式。可供消息驅動bean 作為消息源使用。
n??????? 增 加了消息目的地。
n??????? 進 一步豐富了EJB 查詢語言,支持ORDER BY, AVG, MIN, MAX, SUM, COUNT 和MOD 。
n??????? 使 用XML schema 代替DTD 以定義部 署描述符。
(5)??? EJB3 .0
2006 年5 月2 日發布,JSR 220 定 義。
n?? 全 面采用Java 注釋代替部署描述符。(后者仍可使用,并且具有更高優先級)
總結
- 上一篇: 重磅!摩托罗拉Razr 2023渲染图遭
- 下一篇: 2月26日发布!小米13国际版真机曝光