Posted on 2007-04-27 17:01
kook 閱讀(483)
評論(0) 編輯 收藏 所屬分類:
J2EE
安裝好了系統,我先來對它做一個總體介紹。
Raible給AppFuse這個Web應用寫了好幾種實現方式,有Struts Spring Hibernate、Spring iBATIS、WebWork Spring Hibernate、JSF Spring Hibernate、Tapestry Spring Hibernate 等等。目前在國內最流行的應該就是Struts Spring Hibernate了,就以這種框架為例介紹AppFuse吧。
Struts Spring Hibernate使用了基于MVC模式的struts的框架,并使用hibernate進行持久層操作,使用Spring對各個組件進行“依賴注射”。通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用,具有組件化的優點從而更易于實現對大規模系統的開發和管理。使用AppFuse,你應該對Struts和Hibernate有一定的了解。
下面分別介紹各層的功能:
1. Controller:控制器的作用是從客戶端接受請求,并且選擇執行相應的業務邏輯,然后把響應結果送回到客戶端。Controller功能核心是一個Servlet類型的對象ActionServlet,它用來接受客戶端的請求。ActionServlet包括一組基于配置的ActionMapping對象,每個ActionMapping對象實現了一個請求到一個具體的Action控制器對象之間的映射。所有的Action對象都是從Struts的Action類派生的子類。Action對象封裝了具體的控制邏輯,調用Model層的業務邏輯模塊,并且把響應提交到合適的View組件以產生響應。Struts提供的ActionForm組件對象為顯示提供一個模型,可以通過定義屬性描述客戶端表單數據。從它派生子類對象,利用它和Struts提供的自定義標記庫結合可以實現對客戶端的表單數據的良好封裝和支持。通過ActionForm組件對象實現了對View和Model之間交互的支持。同時,控制器會負責處理異常及UI驗證
2. Model:代表的是應用的業務邏輯。Model分為兩層:持久層和業務層,用這種模式將底層數據訪問操作與高層業務邏輯分離開。持久層使用ORM開源框架:Hibernate。 Hibernate為java提供了OR持久化機制和查詢服務。業務層框架使用Spring。Spring著手于“依賴注入”這樣的概念。Spring把程序中所涉及到包含業務邏輯和Dao的Objects——例如transaction management handler(事物管理控制)、Object Factoris(對象工廠)、service objects(服務組件)——都通過XML來配置聯系起來,降低了各個組件的耦合度。
3. View:View是應用的表示面,通過JSP技術實現。Struts提供了自定義的標記庫可以使用,通過這些自定義標記可以非常好地和系統的Model部分交互,通過使用這些自定義標記創建的JSP表單,可以實現和ActionForm的映射,完成對用戶數據的封裝。
Action調用Model層方法時通過讀取Spring框架配置文件來創建實例。Spring框架控制主體公共部分,而把用戶要使用的部分定義了接口,然后用Spring框架調用這個接口,實現回調。Model層分為兩層:業務層(Manager)和持久層(DAO),每一層又分接口和實現兩部分。Action調用Manager層的接口,Manager的Implement實現高層業務邏輯并調用DAO接口實現對數據庫的操作。這三層之間的調用均通過Spring的“依賴注入”機制實現。