城市獵人

          在一網(wǎng)情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
          posts - 1, comments - 7, trackbacks - 0, articles - 89

          ADF(轉(zhuǎn))

          Posted on 2009-07-31 13:26 sailor 閱讀(156) 評論(0)  編輯  收藏
            ADF(Application Development Framework)是Oracle公司為簡化Java EE程序開發(fā)的復(fù)雜性專門開發(fā)的一種解決方案,ADF通過減少實現(xiàn)設(shè)計模式和應(yīng)用程序框架的代碼量,簡化了Java EE的開發(fā)。ORACLE為ADF提供的最新IDE是Jdeveloper 11g,它應(yīng)該是目前對ADF框架支持最好的工具——從設(shè)計到最終部署整個過程都提供了非常好的支持。

           

                1   Oracle ADF的架構(gòu)

            Oracle ADF的架構(gòu)是基于MVC設(shè)計模式的,其架構(gòu)如圖所示。


           下圖說明了ADF各個模塊在一個完整的Web Application中的結(jié)構(gòu)關(guān)系。



             1.1  ADF Business Components

              在以數(shù)據(jù)庫為中心的業(yè)務(wù)邏輯中,ADF提供了下面三種關(guān)鍵部件: Entity Object, ViewObject, Application module。這三層建立的順序是這樣的,先建立持久層的實體對象(Entity Object),然后建立數(shù)據(jù)訪問層的視圖對象(ViewObject),最后建立接口層(Application module)。其中建立持久層的實體對象主要是和數(shù)據(jù)庫的表或者同義詞對象建立關(guān)聯(lián),數(shù)據(jù)訪問層的視圖對象(ViewObject)是基于實體層的實體對象建立的(當然也可以只建視圖對象,不過這樣就不是基于實體對象的,而是基于SQL),主要是進行數(shù)據(jù)庫的訪問,而接口層是整個Business Service 層和Model層的接口,在數(shù)據(jù)訪問層建立的視圖對象需要注冊到接口層中,這樣在Model層中才可以訪問。

           

              1.2 ADF Model層

              ADF model是ADF框架最核心的模塊——它實現(xiàn)了JSR-227規(guī)范,包括兩部分:Data Control和declarative bindings(聲明式綁定)。

              Data Control 通過使用標準元數(shù)據(jù)描述業(yè)務(wù)層中操作和數(shù)據(jù)集合(包括屬性信息,方法調(diào)用等),從而抽象了業(yè)務(wù)邏輯的實現(xiàn)。當開發(fā)人員創(chuàng)建好接口層(Application module)時,Data Control也就自動創(chuàng)建好了,它包含了接口層中所有的功能。也就是說所有訪問業(yè)務(wù)對象的方法現(xiàn)在都通過Data Control來進行,這樣使得綁定層使用一種方式來訪問數(shù)據(jù),不論后臺的數(shù)據(jù)對象是如何獲取得(數(shù)據(jù)庫,webservice, javabean, csv等)。可以把Data Control看做是一種代理機制,從而隔離了業(yè)務(wù)邏輯層和UI層。 

              Declarative bindings (聲明式綁定)則是抽象了從DataControl中獲取數(shù)據(jù)和調(diào)用的細節(jié)。其中包括三種基本的聲明式綁定對象類型:Iterator bindings,Value bindings,Action bindings。

              由于 ADF model是ADF框架最核心的模塊,也是最復(fù)雜的地方。而由于DataControl都是自動建好的,通常開發(fā)人員不需要去關(guān)心它。所以在這一層最主要的就是理解Declarative bindings, 在開發(fā)過程中通常得在backing Bean中來訪問這些綁定對象來實現(xiàn)一些特定的功能,在下一篇中會列出一些在backing Bean中常用的訪問綁定對象的代碼。

           

             1.3 ADF Controller

              Controller層是用來控制頁面流程的。ADF Controller在實現(xiàn)了JSF標準的基礎(chǔ)上進行了擴展,提供了更大的頁面流功能。

           

             1.4 ADF Faces Rich Client

             ADF Faces Rich Client (RC)是基于JSF標準,內(nèi)建有AJAX功能的組件。據(jù)說ADF Faces  RC提供了超過100個富客戶端組件,其中包括了內(nèi)置Flash和SVG數(shù)據(jù)可視化組件。通過使用這些組件,用戶帶來極大的視覺沖擊。除了使用ADF Faces  RC,Oracle ADF也對Apache MyFaces Trinidad視圖技術(shù)提供了完全的支持。

           

          2    一些關(guān)于學(xué)習(xí)ORACLE ADF的資料

              1. ADF API和關(guān)于ADF框架的詳細文檔

              2. jdeveloper 11g相關(guān)

              3. 一些簡單的ADF在線視頻

              4. ADF Faces RC Component最佳實踐下載

              5. ADF Faces Data Visualization Components Demo

           

               相信學(xué)習(xí)使用過Oracle adf都抱怨過其復(fù)雜性。雖然ADF框架倡導(dǎo)的是快速開發(fā),但這是在開發(fā)人員熟悉該框架的前提下。相比于其它MVC框架,其復(fù)雜性造成的漫長的學(xué)習(xí)周期只能讓其叫好不叫座,以及技術(shù)不開放,只有授權(quán)的用戶可以申請源代碼,相關(guān)的學(xué)習(xí)文檔也比較凌亂(最新的中文文檔基本上沒有),這些都是阻礙這個優(yōu)秀的框架在國內(nèi)流行的因素。

               原文:http://liuxuan620.javaeye.com/blog/371253


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 北宁市| 镇江市| 曲麻莱县| 贵溪市| 济南市| 阿城市| 扶风县| 嫩江县| 缙云县| 上犹县| 池州市| 汉川市| 平度市| 滨州市| 曲阜市| 赤壁市| 绍兴县| 宁海县| 灵丘县| 商南县| 新丰县| 黄山市| 赞皇县| 宣汉县| 奉化市| 营山县| 齐河县| 祁连县| 五莲县| 湟中县| 梨树县| 惠东县| 商南县| 惠安县| 丰顺县| 东安县| 科尔| 乐东| 顺义区| 启东市| 抚顺县|