使用EJB3.O簡化EJB開發 原著:Debu Panda
我們引入EJB來構造分布式的組件。它誕生之時是為瞭解決所有CORBA的問題和複雜性。經曆過幾次重要的版本更新和增加許多特性之後,EJB已經成為了J2EE的核心。在早期,很多開發人員沉迷於EJB甚至在沒有任何意義的情況下在他們的工程中使用EJB。而當他們發現所使用的工程並沒有質的變化後,譴責EJB成了一種趨勢。
開發EJB從來沒有變得簡單甚至在早期的EJB版本規範中變得更加複雜。EJB由於其的複雜性和重量級特性而被比作一隻大象。學多開發人員感覺EJB象一個油炸圈餅上多餘的一層甜糖漿。在現在low carb和Atkins diet大行其道的今天,EJB專家委員會也沒有選擇餘地的發布了體現low carb的EJB規範來簡化EJB的開發。EJB3.0專家委員會在2004Javaone大會上發布了稱之為EJB3.0第一個公開規範的輕量級模型的範例圖。
第一眼看到EJB的新模型感覺很不錯。在這篇文章中我們將討論EJB3.0如何使用一個更小而精緻的裝配來吸引開發人員的。在接下來的文章中我們將來討論EJB3.0是怎樣簡化持久性模型的。
整理缺陷
在我們開始對EJB3.0帶來的新特性進行討論之前,讓我們先分析一下現在EJB模型的複雜繁瑣。
- 現在的EJB模型需要建立許多組件介面和實現許多不必要的復原方法。
- 組件介面需要實現EJBObject或者EJBLocalObject,並且處理許多不必要的異常。
- EJB的部署描述複雜而容易出錯。
- 基於EJB模型的容器持久化管理的開發和管理過於複雜。許多基礎的特徵未考慮到,比如使用資料庫序列和EJBQL定義一個主鍵的標準方法就非常有限。
- EJB組件不像是物件導向的,比如在使用繼承和多態時就有太多限制。
- 一個主要的EJB的缺點是你不能脫離EJB容器測試一個EJB模型且不能在容器內調試一個EJB,這對開發人員無疑是一個可怕的事情。
如果你使用EJB你需要熟悉調用和尋找EJB的複雜過程。顯然,你僅僅要在程式中使用EJB但你卻必須知道JNDI詳細的細節。