<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dorado技術(shù)園地

    與您共同討論dorado技術(shù)及其應(yīng)用技巧

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      8 隨筆 :: 0 文章 :: 37 評(píng)論 :: 1 Trackbacks

    dorado是一套成熟的Web應(yīng)用開發(fā)套件, 其中包含了一個(gè)完整的具有下一代Web應(yīng)用特征的表現(xiàn)層解決方案。本文著重介紹了如何利用dorado的表現(xiàn)層與目前較為流行的StrutsHibernateSpring進(jìn)行協(xié)同開發(fā)。

    mvc2.gif
    圖表
    1基于MVC模式的總體框架圖

    上圖是利用dorado的表現(xiàn)層與目前較為流行的StrutsHibernateSpring進(jìn)行協(xié)同開發(fā)的總體框架圖。從此圖中我們不難看出與傳統(tǒng)的MVC的開發(fā)模式的最大區(qū)別在于View部分dorado的表現(xiàn)層實(shí)現(xiàn)。

    1.             發(fā)起請(qǐng)求 從瀏覽器發(fā)出請(qǐng)求開始(如圖中的1號(hào)箭頭)。該請(qǐng)求首先將被StrutsActionServlet接受,然后ActionServlet會(huì)根據(jù)用戶的Struts配置確定應(yīng)觸發(fā)哪一個(gè)具體的Action

    2.             調(diào)用業(yè)務(wù)邏輯 Action的主要任務(wù)是調(diào)用某一個(gè)業(yè)務(wù)邏輯對(duì)象BO(Business Object)已完成相應(yīng)的業(yè)務(wù)操作。由于我們?cè)诖丝蚣芸紤]引入了Spring,因此Action將不必直接創(chuàng)建具體的BO。而是通過Spring框架利用反向注入的原理(Ioc)來得到BO的實(shí)例。
    BO當(dāng)中我們應(yīng)當(dāng)通過數(shù)據(jù)訪問對(duì)象DAO(Data Access Object)來實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問操作。由于我們考慮在開發(fā)模式中引入Spring。因此,此處具體使用的DAO實(shí)例也應(yīng)通過Spring來獲取。
    為了更好地實(shí)現(xiàn)業(yè)務(wù)邏輯的面向?qū)ο蠡覀冞€可以考慮利用Hibernate來作為DAO的具體實(shí)現(xiàn)方式。如此便有的了上圖中所展示的Model層的架構(gòu)。最終在整個(gè)系統(tǒng)中DAO成為了唯一的數(shù)據(jù)庫(kù)訪問途經(jīng)。通常我們可以將此圖中的DAOHibernate統(tǒng)稱為數(shù)據(jù)持久層。
    另外,在某些情況我們也可以考慮簡(jiǎn)化此處的持久層設(shè)計(jì)。由于Hibernate本身就可以作為獨(dú)立的持久層實(shí)現(xiàn),因此也可以將此處的DAO對(duì)象省去,直接在BO中利用Hibernate完成數(shù)據(jù)訪問。
    當(dāng)我們的Action完成了對(duì)BO的調(diào)用之后,我們應(yīng)當(dāng)將業(yè)務(wù)邏輯個(gè)直接結(jié)果存入到上下文對(duì)象(Context)當(dāng)中,以便于稍后的View能夠得到這些數(shù)據(jù)并用于界面的繪制和展現(xiàn)。在通常模式下BO的執(zhí)行結(jié)果都是以VOValue Object)的方式返回的。VO既可以可以獨(dú)立的JavaBean也可以是JavaBean的集合(Collection 例如:List Set)

    3.             轉(zhuǎn)發(fā)請(qǐng)求 當(dāng)Action完成上述操作之后Struts應(yīng)根據(jù)BO的執(zhí)行結(jié)果和用戶的配置將請(qǐng)求轉(zhuǎn)發(fā)給某個(gè)具體的JSP來實(shí)現(xiàn)界面的展現(xiàn)。由于此處引入了dorado的表現(xiàn)層,因此JSP的作用已被弱化為了單一的對(duì)視圖模型(ViewModel)中的各種可視化對(duì)象進(jìn)行布局。
    視圖模型是一種用戶描述視圖邏輯的對(duì)象。例如我們將表格要如何顯示、單擊按鈕后要完成什么動(dòng)作、下拉框如何進(jìn)行賦值等信息都?xì)w納為視圖邏輯。視圖模型只負(fù)責(zé)聲明和描述對(duì)象,而不負(fù)責(zé)對(duì)象具體的擺放位置。視圖模型無法獨(dú)立的訪問View層之外的數(shù)據(jù),視圖模型只能引用在數(shù)據(jù)模塊(Module)中定義的數(shù)據(jù)。
    數(shù)據(jù)模塊是dorado的表現(xiàn)層中專門用于訪問外部數(shù)據(jù)的一種對(duì)象。例如在此處的開發(fā)模式當(dāng)中我們就利用數(shù)據(jù)模塊來訪問BO返回的執(zhí)行結(jié)果。

    4.             值對(duì)象(VO)的傳遞    由于我們不能把數(shù)據(jù)模塊的激活和BO的調(diào)用看作是一個(gè)同步的過程。因此數(shù)據(jù)模塊無法直接得到BO返回的執(zhí)行結(jié)果,而只能通過上下文對(duì)象來獲取BO返回的VO。此處的上下文對(duì)象一般是指Request對(duì)象的Attributies屬性集。
    數(shù)據(jù)模塊在得到VO之后需要自動(dòng)將VO中包含的信息反射成dorado中的數(shù)據(jù)集(Dataset)。由于此種數(shù)據(jù)轉(zhuǎn)化在某些極端的情況是非常復(fù)雜的(例如VO的多級(jí)集合嵌套),因此我們必要定義一些描述信息來輔助dorado按照正確的方式進(jìn)行數(shù)據(jù)轉(zhuǎn)換。值得慶幸的是doradoStudio可以自動(dòng)生成絕大部分的描述信息。我們只需要根據(jù)實(shí)際情況的在必要的時(shí)候?qū)@些描述信息做少量的調(diào)整就可以了。

    5.             反饋 VO的信息被正確的轉(zhuǎn)化到Dataset中之后,doradoModuleViewModel將按照其標(biāo)準(zhǔn)的方式運(yùn)行,并最終通過JSP將視圖信息反饋給瀏覽器。此處,dorado的表現(xiàn)層之所以需要數(shù)據(jù)模塊、視圖模型和JSP的協(xié)同工作是為了更好的實(shí)現(xiàn)代碼的重用。

    綜上5個(gè)步驟,我們不難看出doradoStrutsHibernateSpring這些產(chǎn)品進(jìn)行整合的關(guān)鍵在步驟4,即如何將VO轉(zhuǎn)換成dorado中的Dataset。而且事實(shí)上dorado的對(duì)象本身完全不需要對(duì)StrutsHibernateSpring中的任何對(duì)象進(jìn)行直接調(diào)用。這種松耦合的結(jié)合方式可以充分的保證系統(tǒng)架構(gòu)將來的靈活性和擴(kuò)展性。

    結(jié)論

    此種開發(fā)模式與傳統(tǒng)的開發(fā)模式比較,其最大的優(yōu)勢(shì)在于可以利用dorado大大的節(jié)省開發(fā)人員在開發(fā)Web應(yīng)用表現(xiàn)層式的工作量,同時(shí)又為我們的應(yīng)用提供非常友好、易用的用戶交互界面,將應(yīng)用直接升級(jí)成新一代的富客戶端網(wǎng)絡(luò)應(yīng)用(Rich Internet Application)

    此種開發(fā)模式與標(biāo)準(zhǔn)的dorado的開發(fā)相比將會(huì)帶來開發(fā)工作量的明顯加大,不過同時(shí)在開發(fā)模式上的標(biāo)準(zhǔn)化也可以在另外一些方面為我們帶來好處。例如可以系統(tǒng)架構(gòu)具有更好的擴(kuò)展性,使得將來在需要的時(shí)候引入其他框架類產(chǎn)品的變得相對(duì)容易。

     

    工作量

    界面

    擴(kuò)展性

    傳統(tǒng)MVC

    (使用上述開發(fā)模式中除dorado外的所有技術(shù))

    最大

    簡(jiǎn)陋

    引入doradoMVC架構(gòu)

    (使用本文介紹的開發(fā)模式)

    較大

    友好

    (富客戶端)

    dorado的標(biāo)準(zhǔn)開發(fā)模式

    (不包含StrutsHibernateSpring

    較小

    友好

    (富客戶端)

    較好

    Dorado除可以幫我們改善界面之外,還可以為我們提供國(guó)際化、性能分析、權(quán)限配置等等諸多實(shí)用的功能,由此可見引入dorado作帶來的好處是不言而喻的,此處不做過多累述。但是對(duì)于上表中的后兩種開發(fā)方式的取舍應(yīng)根據(jù)多方面的實(shí)際情況來決斷。一般而言,對(duì)于規(guī)模不是特別大,參與開發(fā)的人員不多且預(yù)計(jì)系統(tǒng)將來升級(jí)和擴(kuò)展不是很頻繁的項(xiàng)目,我們?nèi)酝扑]選用相對(duì)簡(jiǎn)單且快速的第三種方式,即直接使用dorado標(biāo)準(zhǔn)的開發(fā)模式。

    與了解更多詳情請(qǐng)瀏覽一下網(wǎng)址:
    http://61.151.239.187/doradosample/hibernate2.show.d
    http://61.151.239.187/doradosample/hibernate3.show.d

    posted on 2005-08-29 16:49 dorado技術(shù)園地 閱讀(8067) 評(píng)論(14)  編輯  收藏

    評(píng)論

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2005-08-30 16:38 Hut
    這東西和我準(zhǔn)備做的東西很像,其實(shí)大部分的頁(yè)面操作時(shí)頁(yè)面邏輯,謝謝提供資料。  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-03-27 18:53 pear
    厲害,算我長(zhǎng)見識(shí)了。。  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-04-19 19:34 henry
    請(qǐng)問如何處理BO拋出的異常消息?如果要在前端用消息窗口顯示異常消息,該如何做?  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-04-20 08:58 waterspirits
    dorado系統(tǒng)默認(rèn)會(huì)將該異常信息在客戶端作為消息窗口顯示,另外dorado系統(tǒng)還提供了一些客戶端的事件機(jī)制,便于開發(fā)人員定制提示信息!
    詳細(xì)內(nèi)容可以參考:
    http://61.151.239.187/bbs/forum/index  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-07-28 16:57 親切
    什么垃圾理論,我看這個(gè)什么快魚簡(jiǎn)直就是垃圾,到什么時(shí)候國(guó)際化了再用吧  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-09-13 09:57 路過
    請(qǐng)問您是否清楚開發(fā)的層次架構(gòu),DAO和Hinbernate ,bo 和SPRING之間的關(guān)系是什么?  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-10-21 17:56 atom
    觀注中.,...  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2006-10-21 18:14 william[匿名]
    現(xiàn)已提供marmot實(shí)現(xiàn)以上開發(fā)集成。

    http://61.151.239.187/bbs/forum/listthreads?forum=20  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2007-07-21 18:50 yzjyzj
    這是一個(gè)好框架  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2007-09-02 22:22 niukai_2000
    不錯(cuò)的工具,希望多多交流  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2008-03-09 15:34 bear
    好東西,就是不會(huì)用
    關(guān)注中  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2008-12-10 21:01 ffff
    誰用誰知道有多爛!  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2009-06-03 17:21 藍(lán)
    最討嫌的是該框架的視圖模型配置文件,在該文件中寫上一段不完全像javaScript也不像Java的腳本則簡(jiǎn)直是該框架的敗筆。另外作為一個(gè)框架應(yīng)該是幫我們解決原先不好解決的問題,但該框架的策略是,你跟我吧,用我的套路包你打遍天下無敵手。導(dǎo)致我們辛苦積累多年的經(jīng)驗(yàn)在該框架上幾乎無用武之地。唉!。。。。還是Spring框架好啊,幫我們做那么多事,但從不強(qiáng)迫我要跟他走。  回復(fù)  更多評(píng)論
      

    # re: Dorado與Struts、Hibernate、Spring的集成開發(fā)模式 2015-09-01 12:03 javaercoder
    用過這個(gè)框架,覺得這個(gè)dorado框架非常非常的垃圾。完全不能滿足一些個(gè)性化需求,而且樓上說的沒錯(cuò)該框架的策略就是讓你跟著我的套路去開發(fā)。堅(jiān)決抵制如此爛的框架!  回復(fù)  更多評(píng)論
      


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产精品成人AV无码久久综合影院| 97国免费在线视频| 亚洲人成人无码.www石榴| 亚洲视频在线免费播放| 亚洲国产高清人在线| 亚洲av丰满熟妇在线播放| 亚洲av中文无码乱人伦在线播放| 久久亚洲精品视频| 亚洲av永久无码精品国产精品| 亚洲国产成人高清在线观看| 亚洲电影国产一区| 亚洲女人初试黑人巨高清| 国产成+人+综合+亚洲专| 亚洲AV永久无码精品一福利| 综合一区自拍亚洲综合图区| 免费国产a理论片| 精品免费久久久久国产一区| 国产无遮挡裸体免费视频在线观看| 欧亚一级毛片免费看| h片在线播放免费高清 | 国产l精品国产亚洲区在线观看| 亚洲成亚洲乱码一二三四区软件| 亚洲国产成人久久综合碰碰动漫3d| 色播亚洲视频在线观看| 国产亚洲sss在线播放| 亚洲高清一区二区三区电影| 一级午夜免费视频| 久久久久久AV无码免费网站下载 | 产传媒61国产免费| 中国好声音第二季免费播放| 日本在线看片免费人成视频1000| 国产2021精品视频免费播放| 免费无码一区二区三区蜜桃大| 亚洲成a人在线看天堂无码| 国产AV无码专区亚洲AV男同 | 亚洲午夜久久久影院伊人| 亚洲视频国产精品| 亚洲av无码日韩av无码网站冲 | 亚洲 暴爽 AV人人爽日日碰| 四虎影视久久久免费观看| 午夜爽爽爽男女免费观看影院|