posts - 5, comments - 24, trackbacks - 0, articles - 20
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          AppFuse學(xué)習(xí)筆記2-框架總攬

          Posted on 2007-04-27 17:01 kook 閱讀(485) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE
          安裝好了系統(tǒng),我先來(lái)對(duì)它做一個(gè)總體介紹。
              Raible給AppFuse這個(gè)Web應(yīng)用寫(xiě)了好幾種實(shí)現(xiàn)方式,有Struts Spring Hibernate、Spring iBATIS、WebWork Spring Hibernate、JSF Spring Hibernate、Tapestry Spring Hibernate 等等。目前在國(guó)內(nèi)最流行的應(yīng)該就是Struts Spring Hibernate了,就以這種框架為例介紹AppFuse吧。
              Struts Spring Hibernate使用了基于MVC模式的struts的框架,并使用hibernate進(jìn)行持久層操作,使用Spring對(duì)各個(gè)組件進(jìn)行“依賴注射”。通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用,具有組件化的優(yōu)點(diǎn)從而更易于實(shí)現(xiàn)對(duì)大規(guī)模系統(tǒng)的開(kāi)發(fā)和管理。使用AppFuse,你應(yīng)該對(duì)Struts和Hibernate有一定的了解。

          下面分別介紹各層的功能:
              1. Controller:控制器的作用是從客戶端接受請(qǐng)求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。Controller功能核心是一個(gè)Servlet類型的對(duì)象ActionServlet,它用來(lái)接受客戶端的請(qǐng)求。ActionServlet包括一組基于配置的ActionMapping對(duì)象,每個(gè)ActionMapping對(duì)象實(shí)現(xiàn)了一個(gè)請(qǐng)求到一個(gè)具體的Action控制器對(duì)象之間的映射。所有的Action對(duì)象都是從Struts的Action類派生的子類。Action對(duì)象封裝了具體的控制邏輯,調(diào)用Model層的業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對(duì)象為顯示提供一個(gè)模型,可以通過(guò)定義屬性描述客戶端表單數(shù)據(jù)。從它派生子類對(duì)象,利用它和Struts提供的自定義標(biāo)記庫(kù)結(jié)合可以實(shí)現(xiàn)對(duì)客戶端的表單數(shù)據(jù)的良好封裝和支持。通過(guò)ActionForm組件對(duì)象實(shí)現(xiàn)了對(duì)View和Model之間交互的支持。同時(shí),控制器會(huì)負(fù)責(zé)處理異常及UI驗(yàn)證
              2. Model:代表的是應(yīng)用的業(yè)務(wù)邏輯。Model分為兩層:持久層和業(yè)務(wù)層,用這種模式將底層數(shù)據(jù)訪問(wèn)操作與高層業(yè)務(wù)邏輯分離開(kāi)。持久層使用ORM開(kāi)源框架:Hibernate。 Hibernate為java提供了OR持久化機(jī)制和查詢服務(wù)。業(yè)務(wù)層框架使用Spring。Spring著手于“依賴注入”這樣的概念。Spring把程序中所涉及到包含業(yè)務(wù)邏輯和Dao的Objects——例如transaction management handler(事物管理控制)、Object Factoris(對(duì)象工廠)、service objects(服務(wù)組件)——都通過(guò)XML來(lái)配置聯(lián)系起來(lái),降低了各個(gè)組件的耦合度。
              3. View:View是應(yīng)用的表示面,通過(guò)JSP技術(shù)實(shí)現(xiàn)。Struts提供了自定義的標(biāo)記庫(kù)可以使用,通過(guò)這些自定義標(biāo)記可以非常好地和系統(tǒng)的Model部分交互,通過(guò)使用這些自定義標(biāo)記創(chuàng)建的JSP表單,可以實(shí)現(xiàn)和ActionForm的映射,完成對(duì)用戶數(shù)據(jù)的封裝。

              Action調(diào)用Model層方法時(shí)通過(guò)讀取Spring框架配置文件來(lái)創(chuàng)建實(shí)例。Spring框架控制主體公共部分,而把用戶要使用的部分定義了接口,然后用Spring框架調(diào)用這個(gè)接口,實(shí)現(xiàn)回調(diào)。Model層分為兩層:業(yè)務(wù)層(Manager)和持久層(DAO),每一層又分接口和實(shí)現(xiàn)兩部分。Action調(diào)用Manager層的接口,Manager的Implement實(shí)現(xiàn)高層業(yè)務(wù)邏輯并調(diào)用DAO接口實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。這三層之間的調(diào)用均通過(guò)Spring的“依賴注入”機(jī)制實(shí)現(xiàn)。

          主站蜘蛛池模板: 昭苏县| 肃南| 阳原县| 大宁县| 龙州县| 建德市| 淄博市| 盐津县| 大英县| 崇阳县| 于都县| 瑞昌市| 肃南| 玉龙| 东乡族自治县| 霞浦县| 黄骅市| 河池市| 宜城市| 柳林县| 思茅市| 开封市| 土默特左旗| 莱州市| 额济纳旗| 郴州市| 堆龙德庆县| 泰和县| 宁明县| 时尚| 上饶县| 舞钢市| 独山县| 正宁县| 台南县| 宕昌县| 出国| 通海县| 措美县| 徐闻县| 绵竹市|