程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java EE開發三劍客現狀及發展淺析

Java EE開發三劍客現狀及發展淺析

編輯:關於JAVA

JSF 2.0

盡管 Java 在展示層框架上競爭的非常激烈,但 JSF 仍然固守著自己的領地。雖然有很多關於 JSF 的易用性和健壯性的質疑聲,但 JSF2.0 就是為正面解決這些問題而提出來的,它的易用,創新以及可擴展的特性包括:

JSF 正式將 Facelets 作為視圖技術。也許你不熟悉 Facelets ,它也是一個與 JSF 結合默契的開源視圖技術。因此,與 JSP 不同的是 Facelets 更適合 JSF 的組件模型以及生命周期的概念。當然,也許 Facelets 最強大的特性就是在用 mark-up 來代替 Java 代碼創建自定義的組件。創建自定義組件的復雜度也許是開發者對 JSF 抱怨最多的地方了。

JSF2.0 通過使用標簽為 Java EE 5 提供了基於 annotation 驅動的配置特性(比如說可以使用 @ManagedBean 和 @ManagedProperty )。這也意味著可以一定程度上的減少 faces-config.xml 文件的大小,不過像在 navigation 這些結點的配置在 XML 文件還是不能少。

JSF2.0 為適應 AJAX 而改變了自身的生命周期,只需要局部頁面的交由 AJAX 事件處理。這個特性使得 JSF+AJax 的組合更加自然。

JSF2.0 現在內置了優秀的資源處理器。對 images , JavaScript 文件以及 CSS 樣式等都表現出眾。它可以對通過邏輯名稱,資源分組以及版本等方式來更好的引用資源。

除上述特性外, JSF2.0 還包括許多其它方便的改變。比如說支持事件,支持 RAILS_ENV 的開發風格 ( 就是 ROR) ,支持對標准組件集進行擴展。你可以通過下面的鏈接來看看 JSF2.0 的公開草案:http://jcp.org/en/JSr/detail?id=314

EJB 3.1

EJB 在 Java EE 5 就已經經歷過了非常大的改動。也許看似不可能,但實際上 EJB3.0 還是在社區中廣泛得到認可,並且采納它的人也在不斷增長。而這一切也許是因為我們過度的認為需要怎麼怎麼簡化 Java EE 5 才取得這樣的成績。比如說,對 JBoss Seam 的興趣和 GlassFish 的熱情都是重要的關鍵因素。 EJB3.1 的目標就是在增加業務組件時,繼續讓 EJB 變得盡可能簡單。下面是對 EJB3.1 特性的高度概括:

原本需要甚至實現 Session Beans 的業務接口變得可選了,不再強迫要求實現。在使用 Session Beans+JSF+WebBeans 的場景下尤其有用。

EJB3.1 增加了 Singleton Beans 的概念。因為人們更傾向於管理共享的應用程序狀態,需要保證是完全線程安全的模型。此外, EJB3.1 新增的聲明式的並發控制也更加靈活。

EJB3.1 一個可圈可點的的強大特性就是支持 cron 風格的 scheduling .除目前基於 timer API 的調度計時器外,聲明式和編程式的 cron 風格的 scheduling API 也加入了進來。

另一個強大的特性就是可以通過使用 @Asynchronous 標注來對 Session Bean 的方法進行異步調用。你甚至還通過它來控制異步 EJB 方法從而返回一個 Java.util.concurrent.Future 對象。

EJB3.1 Lite 概念的逐漸引入形成了一個 EJB API 的子集,並在 Web Profile 中得到應用。只不過 EJB Lite 包含了像事務處理和安全這樣的特性,而那些消息機制,遠程調用以及 scheduling 等非必須的自然沒有必要加入其中。除上述列表所述特性外,

EJB3.1 的特性還包括:括直接將 EJB 打包成 war 文件,可運行在 embedded 的容器中便於 Java SE 環境進行 JUnit 測試,使用統一的標准化全局 JNDI 命名方式。 EJB3.1 的公開草案可從以下鏈接獲得: http://jcp.org/en/JSr/detail?id=318

JPA 2.0

到 Java EE 6 的時候, JPA 已經徹底從 EJB 中分離,形成自己的體系 (EJB3.0 已經將 JPA 分離出去了 ) . JPA 的成功是毫無疑問的。它廣泛得到社區的采納和一流供應商的支持。本來我們擔心 EJB2.* 的 Enity Beans 垮台可能無法讓 Java EE 再次引領持久層的標准,一個重要成功的因素就是 Gaving King 和 JBoss 社區毫不含糊的支持。 JPA2.0 的目標就是要在這次成功的基礎上再接再厲,填補更多的空白,再創多的創新:

JPA2.0 加入了大量必須的 ORM 映射增強特性,包括:支持通過使用 @ElementCollection 標注來增強 collections, maps 和 lists( 這裡不是指實體之間的關聯關系 ) 集合,支持 map 的單向 one-to-many 關聯 (JPA1.0 只允許雙向 one-to-many 關聯 ) .

EntityManager 和 Query API 都得到改進。比如說,現在可以從結果集中直接取得第一條記錄 (JPA1.0 只允許從一個 unique 結果集中反回單個記錄 ) ,指定 query 結果集的最大值,訪問各個供應商的底層實體對象 manager 或 query ,最後就是加入悲觀鎖 (JPA1.0 只支持樂觀鎖 ) .

JPQL 也提供類似於 SQL 的 CASE , NULLIF , COALESCE 等函數 .

JPA2.0 應廣大開發者要求增加了 Criteria API .要是你對 Hibernate 或 TopLink 的 Criteria API 不熟悉的話,可以將它想像成一個以 Java 為中心的面向對象,線程安全並可以與 JPQL 劃上等號的一組 API .這組 API 適合於編寫復雜的動態查詢語句,還可避免解析 JPQL 語句時,所拋出的運行期異常。

更完整的 JAP2.0 特性還包括:標准的二級緩存,標准的 JDBC propertIEs ,指定超時時間等等。你可以隨時通過下面的 JSR 站點看看關於 JPA2.0 公開草案的更多細節: http://jcp.org/en/JSr/detail?id=317

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