程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 程序員應用EJB 3.0必要的准備

程序員應用EJB 3.0必要的准備

編輯:關於JAVA

EJB 3.0極其重視開發的簡易性,並調整了模型。這絕非巧合,因為規范的主要設計者:Linda DeMichIEl選擇了廣泛聽取外界的意見,並借鑒TopLink等產品所取得的經驗。這樣一來,這項規范就可以沿著已經由流行、得到公認的技術開辟出來的道路前進,而這些道路實際上成了業內事實上的最佳實踐。

那麼,作為程序員的你,面對新的規范,該做哪些准備呢?

處理好架構問題

首先要確保你的架構可以利用持久性方面的標准及認可的設計模式。實際上,這可能需要改動你的應用程序,不過如果你期望應用程序能經得起時間的考驗,那麼進行這種投入是值得的。使用會話外觀、數據訪問對象(DAO)層或者服務層總是好主意,不過在這裡它們都至關重要。如果你的應用程序已經使用遠程實體構建而成——雖然這種做法並不常見,那麼就需要重新設計架構。訪問持久性對象之前,應當先部署可遠程化服務層。如果要使用實體,它就應當完全是本地實體。

不過,使用本地實體不是目的,因為實體還為部署人員提供了為實體聲明事務和安全需求的功能。EJB 3.0不允許任何這些屬性在實體層面進行設定。相反,實體的運行環境將由調用者來確定,所以所需的任何事務或者安全環境將由負責封閉的J2EE組件來安裝或者聲明。 軟件開發網

CMP應用程序

如果你已經是容器管理持久性(CMP)用戶,那麼你可能迫不及待地想獲得新特性,希望拋棄無關的接口、不必要的bean代碼以及繁瑣的XML部署描述符,這些是與以前的實體bean開發相關的一些煩人問題。分別要擴展EJBObject和EJBLocalObject的遠程和本地接口再也不需要了;現在實體只要實現普通Java接口(POJI)即可,如果它們選擇這麼做的話。

其次,你可能在想如何更容易地在容器中部署EJB,或者甚至根本不用部署,而是在獨立環境中的容器外面進行測試。因為實體是具體的普通Java對象(POJO),你就可以像一直以來創建Java對象的方式那樣,即使用new()來創建。

POJO應用程序

可以通過實體管理器(EntityManager)訪問大部分新的持久性API。實體管理器可以注入到會話bean裡面,或者用Java命名和目錄接口(JNDI)進行查詢。實體管理器代表事務的持久性上下文。一旦發現操作單元或者實體管理器管理的對象在事務結束後“很髒”,就會被寫到外面的數據存儲區。

應用程序可以通過抽取含有操作單元/會話工件(artifact)的代碼,讓自己不受全面變化的影響。這樣一來,就可以通過可插入方式來獲得所用的實際會話。定義會話、然後允許包圍層把它與外界隔離開來,這類似EJB 3.0容器所采用的依賴注入范例(dependency injection paradigm)。應用程序中使用的所有資源應當采用這種模式。在EJB 3.0中,標准資源將由應用程序聲明,隨後在運行時被注入到bean裡面。

采用標准特性

EJB 3.0的許多特性可以在TopLink存在已久的特性當中找到影子。只要使用這些特性,你就能夠擁有EJB 3.0的功能,雖然API還沒有完成。

查詢就是這樣一個方面,你現在可以開始使用EJB 3.0的特性。EJB 3.0查詢可以從實體管理器獲得,並且可以在上面執行。可以在你需要直接查詢SLQ、並通過查詢返回對象的少數情況下,創建本地SQL查詢。 軟件開發網

查詢語言往往是造成遷移問題的根源,因為不編寫實質性或者窮舉性的轉換分析工具,就很難實現自動轉換。EJB查詢語言這種合理、有效的方法可對關系查詢語言進行抽象處理,將受益於新增的幾項特性。現有的EJB查詢語言仍可以適用,不過EJB查詢語言方面的更多構件和功能將進一步改進查詢語言。使用EJB查詢語言編寫查詢將是明智之舉,因為查詢語言不會出現重大改變,除了功能上有所添加外。

繼承

EJB 2.1從來沒有指定真正的、自然的繼承。實際上,只有在廠商不設置障礙的情況下才有可能實現繼承,不過仍很難定義及管理。EJB 3.0卻不會這樣。由於具體的Java對象能夠彼此繼承,也用不著定義約束繼承范圍的方法,所以你能夠創建任意深度及廣度的實體繼承層次。

軟件開發網

目前可以通過TopLink Mapping Workbench或JDeveloper、映射Java對象的GUI工具以及用於映射對象的基於Java的API,獲得同樣的這種靈活性。現在你可以創建域模型(domain model),以遵守適合你應用程序的繼承策略,而不必等規范發布。 軟件開發網

樂觀鎖定 TopLink支持的樂觀鎖定(optimistic locking)模型現在將被采用到EJB 3.0模型裡面。這種機制對應用程序非常有用,不僅僅是因為在讀/寫訪問比通常為90:10的情況下,它可以大大提高性能;還因為它有助於獲得現代系統所需的那種可擴展架構。業界的眾多應用程序使用這種主要的鎖定范例,來獲得Web應用程序所需的可擴展性。只要使用簡單方法:為每個樂觀鎖定的對象采用數據庫列和對象版本字段,就很容易獲得可移植性。

這種鎖定帶來了另外的好處:能夠使用非連接模式的對象。只要把數據重新並入事務、然後通過樂觀鎖值驗證已改動的對象是不是失效副本,就很容易支持在離線狀態下改動數據和關系的功能。

對象-關系映射

想編寫面向對象的Java程序,卻把數據保存在關系數據庫裡面,這在以前是困擾應用程序開發的一個重大問題。

決定把用於對象關系映射的標准化元數據和語義添加到EJB 3.0內,這向實現下列功能邁出了一大步:讓應用程序能夠靈活地把應用程序放在不同數據庫上面運行,甚至可以使用不同的持久性框架來進行運行。對象-關系映射標准的第一個階段將包括如今人們用來映射域模型的幾種最流行的映射方法,譬如數據轉換和一對一及多對多關系等。隨後還會添加“高級”映射方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved