欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
webwork+spring+hibernate
  • webwork+spring+hibernate
  •  2006-09-10 17:52:13  作者:point2008  來(lái)源:網(wǎng)友評論0
  •  文字大?。骸?a href="javascript:fontZoom(16)">大】【】【】 評分等級:0
  • 簡(jiǎn)介:webwork+spring+hibernate
  • 目前的各種業(yè)務(wù)管理系統還是將以j2eeb/s架構為主流,所以有必要完成一個(gè)通用的,穩固的整體架構作為以后各種應用的堅實(shí)基礎。
    • 傳統無(wú)架構開(kāi)發(fā)缺點(diǎn):     

    結構不夠清晰,不能夠完全按mvc的思想明確的分離各層邏輯。jsp代碼過(guò)多且結構零亂,沒(méi)有把通用的代碼用taglib等技術(shù)抽象,后續開(kāi)發(fā)困難

    業(yè)務(wù)邏輯和數據庫緊密相關(guān),而沒(méi)有從表實(shí)現中抽象出來(lái)。同時(shí),在每次使用同樣的業(yè)務(wù)邏輯的時(shí)候都要反復的進(jìn)行相關(guān)sql編程。故而與數據庫有強耦合,相關(guān)程序重用性低,可讀性差。其翻頁(yè)機制邏輯橫貫架構,使層次高度耦合,而數據庫封裝也可能存在性能問(wèn)題。

    同時(shí),客戶(hù)也提出了不少整改意見(jiàn),而在原版本的修改和升級都會(huì )較為困難,而且對長(cháng)期的維護不利。

    • 先進(jìn)開(kāi)源架構:

    應盡可能使用業(yè)內先進(jìn)的免費框架技術(shù)而不是自開(kāi)發(fā)框架。好處是:

    這些框架技術(shù)凝聚很多業(yè)內精英的智慧,而且經(jīng)過(guò)發(fā)布和使用,技術(shù)體系已經(jīng)成熟,性能有所保障。

    層次清晰,符合先進(jìn)的技術(shù)理念和設計模式。同時(shí)也容易找到熟悉相關(guān)技術(shù)的人才,維護和后續開(kāi)發(fā)方便。

    相比之下自開(kāi)發(fā)框架因為技術(shù)實(shí)力和時(shí)間問(wèn)題,很難達到這些業(yè)內領(lǐng)先框架的技術(shù)高度。

       分析一般的j2ee應用,應有如下層次:

    顯示層 負責界面顯示,接受用戶(hù)指令

    顯示層有較為經(jīng)典的MVC,即model,view,control,進(jìn)一步了細化了顯示層的工作。此類(lèi)著(zhù)名框架有struts,webwork,spring-mvc等。經(jīng)考察,我認為struts雖然是時(shí)間最長(cháng)最成熟的技術(shù),但易用性和一些架構理念不如webwork,而view層的開(kāi)發(fā)應盡可能簡(jiǎn)單快速。故選定用webwork.

     

    邏輯層 負責進(jìn)行業(yè)務(wù)邏輯的實(shí)現

    目前的開(kāi)發(fā)過(guò)程,往往陷入邏輯層和數據訪(fǎng)問(wèn)層不能分離的情況。面向對象的項目開(kāi)發(fā)最后演變成成程序員在程序各處手工寫(xiě)sql操表。這樣做的優(yōu)點(diǎn)是開(kāi)發(fā)迅速有效,問(wèn)題是結構將日益混亂,每次邏輯的變化將不得不修改分散于各處的sql語(yǔ)句,而后續的程序員也必須了解整個(gè)程序和數據庫結構才能進(jìn)行修改。如果是短期小型項目,可以用這種方式。否則的話(huà),我認為應盡可能貫徹面向對象思想,把業(yè)務(wù)邏輯抽象出來(lái)。

    而邏輯層的工作就是針對實(shí)體對象進(jìn)行業(yè)務(wù)邏輯的實(shí)現。我們針對所有的業(yè)務(wù)操作,對外提供service接口,既服務(wù)接口。這類(lèi)似tuxedoejb所采用的業(yè)務(wù)外觀(guān)模式。而為填補service生存周期管理的空白,我們使用著(zhù)名的spring框架。優(yōu)點(diǎn):

    實(shí)現Ioc,使各層次的耦合可配置化。

    按需要實(shí)現單例模式等,進(jìn)行生存周期管理

    事務(wù)管理。Spring的宣言事務(wù)管理(Declarative transaction management)使得一般場(chǎng)景的代碼中將不需要考慮事務(wù)問(wèn)題而集中于業(yè)務(wù)邏輯

    攔截機制將為程序提供很好的擴展空間

     

        3. 數據訪(fǎng)問(wèn)層 負責將類(lèi)操作映射為數據庫操作。進(jìn)行實(shí)體類(lèi)的持久化。從而將所有的數據訪(fǎng)問(wèn)工作集中起來(lái)

               這一層我們將完成實(shí)體類(lèi)持久化(persistence),有若干選擇:

                         1 jdbc實(shí)現

                         2 使用ORM工具 hibernate,ibatis,jdo

    經(jīng)過(guò)實(shí)寫(xiě)代碼,感覺(jué)用jdbc實(shí)現dao效率非常低,而且容易出錯。經(jīng)過(guò)考量選用hibernate。和ibatis相比雖然上手慢且不夠靈活,但其架構思想和強大功能都受到業(yè)內一致好評,甚至是ejb3也深受hibernate影響 。所以hibernate是很好的選擇。

    綜上,研究 webwork+spring+hibernate的架構,,,一技之長(cháng)?。?!

  • 結合webwork+spring+hibernate來(lái)開(kāi)發(fā)系統感覺(jué)還是很方便的。

      比如:

       1)jsp頁(yè)面減少了很多java腳本(可以說(shuō)是看不到了,以前采用jsp+javabean+jdbc,jsp頁(yè)面真是很亂呀,到處是java腳本,這樣的話(huà)就會(huì )有很多業(yè)務(wù)(business)邏輯也出現頁(yè)面中,有時(shí)直接調用javaBean來(lái)處理,導致程序之間的耦合度很高),更加美觀(guān)大方。

       2)webwork體現出了MVC結構。減少了程序之的耦合程度。webwork采用ongl(對象描述語(yǔ)言)很大程度上減少了set(),get()方法的出現。這樣做,你必須在頁(yè)面,javaBean,之間的命名規則要符合webwork的field-driver,model-driver的要求。

    3)程序的請求統一由com.opensymphony.webwork.dispatcher.ServletDispatcher(control)來(lái)處理,然后通過(guò)xwork.xml中的配置,取得相應的處理程序(Action)。這樣減少了把一些業(yè)務(wù)邏輯寫(xiě)在jsp頁(yè)面中。也更加清晰,有利于以后的維護。

       4)spring起到了事務(wù)管理,aop等作用。減少了很煩瑣的try{}catch(){},程序的結構感覺(jué)很清晰、明了。

       5)hibernate提供了持久化支持。面向對象的hql語(yǔ)言很方便。

       6)對后臺的處理,都是面向接口的編程。對以后的維護很方便
     
     

    基于webwork spring hibernate 項目的開(kāi)發(fā)
    這三者的結合,應該是java web編程最好的模式。

    首先說(shuō)明三者各自負責的職務(wù):

    1 hibernate 負責數據庫的操作

    2 spring 負責真正的業(yè)務(wù)操作

    3 webwork 負責請求轉交,并把spring的處理結果返回給用戶(hù)

     

    以往的開(kāi)發(fā)中,很多人注重MVC模式。的確,這種模式把程序以面向對象的思想分成 了三個(gè)部分。但在web開(kāi)發(fā)中,并不能單純的運用此種模式:web開(kāi)發(fā)的View是固定的(頁(yè)面),而在引入hibernate后,model這一塊也非常簡(jiǎn)單和清晰。就剩下control了,這是web開(kāi)發(fā)的關(guān)鍵部分,現在流行的做法便是將control細分成兩個(gè)部分:dispacher(轉交器)和business object(處理業(yè)務(wù)邏輯的對象)。并將后者抽出接口,甚至和model共享接口,一邊真正做到對dispacher隱藏邏輯實(shí)現。

    而這種M-V-D-B(model-view-dispacher-business object)模式的實(shí)現有好多方式。比如一個(gè)bo(business object)對象的創(chuàng )建,你可以直接 new,也可以動(dòng)態(tài)加載,采用工廠(chǎng)方法,抽象工廠(chǎng)。但最好的就是用spring容器。dispacher只管用接口就行了,具體類(lèi)已經(jīng)有spring的 AOP給注入了。

    當然spring也可以很好地和hibernate結合,你可以采用DAO,也可以用spring的hibernate 模板。但這都不重要,因為你的業(yè)務(wù)對象已經(jīng)和調用層徹底分開(kāi)了,當業(yè)務(wù)層需要和hibernate打交道的時(shí)候,直接做個(gè)HibernateUtil也未嘗不可呀。怎么做都已經(jīng)不是關(guān)鍵。

    下面就具體介紹spring webwork的結合方式。

    在webwork 中的wiki doc中有三種結合方式(google查),我這里采用的最后一種--采用一個(gè)自動(dòng)裝配的攔截器com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor關(guān)鍵代碼如下:


       ApplicationContext applicationContext = (ApplicationContext)ActionContext.getContext().getApplication().get(
              WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
            factory = new SpringObjectFactory();
            factory.setApplicationContext(getApplicationContext());
        Action bean = invocation.getAction();
        factory.autoWireBean(bean);
       
        ActionContext.getContext().put(APPLICATION_CONTEXT, context);

     
     
     
     
    本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
    打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
    猜你喜歡
    類(lèi)似文章
    ssh框架的好處
    spring,hibernate ibatis2,webwork資料下載
    組裝Struts Spring和Hibernate框架
    一篇SSH框架的應用介紹
    JSF+Spring+Hibernate的實(shí)例講解
    Appfuse框架
    更多類(lèi)似文章 >>
    生活服務(wù)
    分享 收藏 導長(cháng)圖 關(guān)注 下載文章
    綁定賬號成功
    后續可登錄賬號暢享VIP特權!
    如果VIP功能使用有故障,
    可點(diǎn)擊這里聯(lián)系客服!

    聯(lián)系客服

    欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久