範例框架開發方法——快速高效地進行Java Web應用開發

進行Java Web應用軟件開發,一般可以採用3種方式。

 

第一種是“自力更生”,從零開始,包括軟件系統架構和底層工具一切都靠自己來實現。

 

第二種是“洋務運動”的“工具框架”開發方法,即自己設計軟件系統架構,但是同時選用一些底層工具類的“工具框架”來配合自己搭建的架構進行開發。這類“工具框架”的典型代表有Struts 2, Hibernate 3等等。

 

第三種是“拿來主義”的“範例框架”開發方法,即自己不再獨立設計系統架構和底層工具,而是選擇一個已經將系統架構和底層工具類庫等子框架都整合好,並提供範例模塊的成熟的“範例框架”,直接參考範例框架上的範例模塊,並使用範例框架整合好的底層工具類庫等子框架,進行定製化開發自己的項目。這類“範例框架”包括AppFuse, Spring Roo, Spring Side, Play, Seam等。

 

實踐證明,第三種“範例框架”開發方法,是最快速高效的。因爲這將大大縮短軟件開發的“起步”過程,提高敏捷軟件開發的首次迭代的質量,並讓今後的開發工作能建立在一系列前人已經摸索出來的“最佳實踐”的基礎之上。

 

要使用“範例框架”開發方法,有必要回顧一下Java Web應用的開發框架。在Java Web應用開發領域,軟件開發框架十分豐富。如果把Java Web應用開發的架構按照軟件系統的三層模型來分層,可以分爲表示層、業務層和數據層這3層。表示層負責顯示應用的結果,業務層負責處理業務邏輯,數據層負責存取數據庫。每一層都有相應的軟件開發框架。

 

2000年3月,Apache Struts開源項目開始啓動。Struts是運用MVC Model 2較早並且爲大多數Java Web開發人員所熟悉的Java Web應用開發框架。

 

其他運用MVC Model 2模式的開源項目也相繼發展起來,比如另一個開源項目OpenSymphony,於2002年推出了比Struts技術更先進的名爲Webwork的Java Web應用開發框架。

 

2008年,上述兩個開源項目Struts和Webwork進行了合併,推出了一個名爲Struts 2的新框架。Struts 2框架實現了上述“三層模型”的表示層和業務層的一些功能,不妨把這類框架稱爲Web應用框架。由於Struts推出時間早,Struts 2框架是目前國內外Web應用框架中名氣最大的。其他常用的通用Web應用框架還包括Apache Tapestry和JavaServer Faces。

 

Java是面向對象的語言,在進行Java Web應用開發,存儲數據到數據庫(即持久化persistence)時,免不了要在數據層進行對象-關係映射(Object-relational mapping, ORM)。一些框架完成了上述基於ORM的持久化工作,其中最有名的是Hibernate。這類框架可以稱爲ORM持久化框架。其他常用的ORM持久化框架還包括:iBATIS和Java Persistence API (JPA)。

 

一些通用開發框架也相繼推出,如2003年發佈的Spring Framework。Spring Framework的興起緣於Sun公司的EJB 1.1至2.1的設計缺乏靈活性,不便於測試而廣受批評這樣的背景之下。Spring Framework最大的優勢,是實現了依賴注入(Dependency Injection,DI)和麪向方面的編程(Aspect-oriented programming, AOP)。DI使得對象的實例化不再由程序控制,而是由Spring Framework容器來控制,這樣會使得模塊之間的耦合度降低,更加容易測試。AOP能夠把一些模塊所共有的通用功能(如日誌、安全、事務)抽象出來集中處理,這能減少開發人員的工作強度,讓他們能更加關注業務邏輯,而不是上述通用功能。

 

由於上述框架數量繁多,要把它們有機地整合起來,在一個項目中充分發揮它們應有的作用,也是一件複雜的事情。一些開源框架就開始做框架整合的工作,整合工作除了把表示層、業務層和數據層的框架組合起來之外,一般還提供若干項目骨架(project skeleton)或範例(archetype),內含如用戶管理、權限管理這樣的通用功能、一些範例模塊和代碼自動生成工具。這類框架可以稱之爲範例框架(Archetype Framework)。範例框架中發展較早的是AppFuse,於2003年推出了1.0版本。最近發展起來的範例框架是Spring Roo,於2009年推出了1.0版本。國內常用的範例框架還包括中國工程師自己創建的Spring Side。其他常用範例框架還包括:JBoss Seam和Play Framework。

 

下表列出了上述Java Web開發框架的相關信息。

 

軟件開發框架

初始版本時間/ 版本號

最近版本時間/ 版本號

框架類型

Spring Framework

2003.06

2010.10.29/3.0.5

通用開發框架

Play Framework

2008.02

2011.04.13/1.2

範例框架

AppFuse

2003.11.30/1.0

2011.04.04/2.1

範例框架

Spring Roo

2009.12/1.0.0.RELEASE

2011.04.13/1.1.3.RELEASE

範例框架

Spring Side

2006.08.07/1.0

2010.09.15/3.3.4

範例框架

Jboss Seam

2005.09

2011.03.31/3.0.0.Final

範例框架

Hibernate

2001

2011.04.06/3.6.3.Final

ORM 持久化框架

iBATIS

2002

2010.12.31/3.0.4

ORM 持久化框架

JPA

2006.05.11/1.0

2009.12.10/2.0

ORM 持久化框架

Struts

2000.05

2010.12.20/2.2.1.1

Web 應用框架

JSF

2004.03.11/1.0

2009.06.28/2.0

Web 應用框架

Apache Tapestry

2000.01

2011.03.30/5.2.5

Web 應用框架

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章