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

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

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

    Junky's IT Notebook

    統(tǒng)計

    留言簿(8)

    積分與排名

    WebSphere Studio

    閱讀排行榜

    評論排行榜

    Spring框架學(xué)習(xí)前言---我的開源框架使用心得體會

    目的:
    在實際項目中出于穩(wěn)定性以及團隊開發(fā)技能我一直沒考慮采用Spring框架,最近有時間就計劃學(xué)習(xí)Spring框架,為以后的項目開發(fā)做相關(guān)的技術(shù)儲備。


    回顧:
    開源框架在以前的項目中用過不少, struts,webwork,hibernate,前兩者屬于web框架,后者屬于ORM框架,這些框架基本都是側(cè)重于應(yīng)用的某個層面,不能稱之為J2EE全面的框架,往往是需要和其他框架相結(jié)合,我開發(fā)的項目采用過如下組合,有的根本就沒有框架,只是自己做了設(shè)計封裝
    a、servlet+jdbc,
    b、servlet+jsp+javabean+jdbc,
    c、struts+BD+DAO ,
    d、webwork+ejb+hibernate

    使用體會:

    ?a、b就不要說了,那時候的代碼結(jié)構(gòu)真是天馬行空,我當(dāng)時初學(xué),維護公司一個項目代碼,1個jsp實現(xiàn)一個模塊所有功能,我花了好長時間才?讀懂代碼。
    ? 時代總是向前發(fā)展的,慢慢的系統(tǒng)結(jié)構(gòu)層次上是越來越清晰,開發(fā)效率也越來越高,維護也越來越容易(基于一定的培訓(xùn)成本)。
    ?
    ?相對而言出于設(shè)計理念來講,個人更喜歡webwork+hibernate框架組合。?

    ?常有人討論同等開發(fā)層面框架的優(yōu)缺點,我所屬產(chǎn)品的另外一個項目團隊曾經(jīng)為項目后續(xù)開發(fā) 應(yīng)該采用struts還是webwork爭論的不可開交,?其實個人認為struts,webwork都是非常好的web框架,都有自身的優(yōu)缺點:
    ?struts開創(chuàng)web MVC框架之先河,2003-2004年開發(fā)的項目基本都是采用struts框架(當(dāng)時招聘人的時候常問會不會struts,會基本就招了?),實際MVC設(shè)計理念很早就提出了,在j2SE中有很多使用之處,但當(dāng)時沒有一個web框架開發(fā)中很好的貫徹該設(shè)計理念,直到struts?出現(xiàn)(可能有,只是沒有apache更引人注意)。

    ?struts優(yōu)點使用用戶多,相關(guān)技術(shù)文檔比較全面,開發(fā)遇到的問題相關(guān)案例也比較多、比較容易解決,框架更加穩(wěn)定(這一點非常重要)。
    ?
    ?webwork相對于struts來講,的確有不少優(yōu)異之處,(也是情理之中的事,后發(fā)布的框架如果再沒有優(yōu)點別人也不會使用)
    ?個人認為在開發(fā)上主要有以下幾點:

    ?1、頁面數(shù)據(jù)封裝成值對象功能比struts強大,webwork采用ognl類型轉(zhuǎn)化。
    ?struts只能對簡單類型的數(shù)據(jù)對象以及文件對象封裝成值對象,?而webwork封裝的值對象基本沒有限制,值對象屬性還可以是List,Map這些對象(這個特性在我們開發(fā)一些批量數(shù)據(jù)、復(fù)雜數(shù)據(jù)處理時非常方便),減少很多代碼量,代碼非常整潔。
    ?
    ?2、攔截器功能
    ?攔截器是webwork的一個亮點,實際上也是業(yè)界比較流行的AOP的一個體現(xiàn),在實際開發(fā)中你可以配置默認的攔截器,?也可以為單獨的模塊指定特定的攔截器,并且可自定義攔截器,action執(zhí)行前后攔截都可以。?
    ?
    ?3、單元測試比較方便
    ?最早使用struts框架開發(fā)測試時,相關(guān)的單元測試基本是不好做的,無法脫離web環(huán)境,測試都是只做集成測試、系統(tǒng)測試。
    ?使用webwork可以簡單對action相關(guān)屬性賦值,可以相關(guān)的單元測試,當(dāng)然前提是在對應(yīng)action中沒有引用web環(huán)境相關(guān)的對象。?
    ?其實webwork框架核心還是xwork框架,最早框架使用在C/S結(jié)構(gòu)下,webwork只是xwork的一個在web環(huán)境的實現(xiàn),只是ActionContext?上下文發(fā)生了變化,所以說action能夠做到脫離web環(huán)境也是情理之中的。


    4、配置文件
    webwork配置文件可以采用引用、繼承其他配置文件方式,在團隊開發(fā)一般都是分模塊開發(fā),這樣比較方便,配置管理更容易,不會沖突。

    5、模板技術(shù)集成
    ?我在實際應(yīng)用項目中是采用velocity模板做視圖展現(xiàn),因為在對應(yīng)版本的webwork框架中和velociy集成的相當(dāng)好,比較方便,
    ?比直接寫jsp代碼更整潔、同時利用velocity模板特性結(jié)合每個action的配置文件,可實現(xiàn)比較通用的頁面查詢、錄入等視圖的展現(xiàn)。
    ?而struts是沒有相關(guān)模板集成,不過struts的tag相對而言比webwork的tag好用,webwork如果視圖是jsp類型,相關(guān)的tag真的比較麻煩
    ?雖然tag 庫很豐富,這也是我為什么使用velocity做視圖的原因 。?
    ?
    6、 框架的效驗功能
    ?老實說,兩者框架的效驗功能都比較麻煩,相對而言webwork更加麻煩點,配置較多,驗證接口實現(xiàn)太麻煩,我實際項目使用中還是
    ?自定義了相關(guān)后臺驗證接口, 要驗證的相關(guān)action只要實現(xiàn)相關(guān)接口即可,相關(guān)攔截器負責(zé)攔截驗證,
    ?大部分的效驗根據(jù)配置數(shù)據(jù)以及html對象自定義屬性通過javascript通用效驗,實際上現(xiàn)在基于XmlHttp的ajax技術(shù)應(yīng)用成熟的話
    ?后臺驗證接口的用途會逐漸淡化。
    ?
    ?說明上述比較版本為 struts 1.0 /webwork 2.1.6,后續(xù)struts框架擴展很多功能,不是很了解,可能和上訴描述不一定很吻合。
    ?
    ?現(xiàn)在兩者已經(jīng)合并,希望能結(jié)合兩者的優(yōu)勢,發(fā)展出更好web框架。
    ?
    7、關(guān)于Hibernate還是DAO模式,個人建議采用hibernate+DAO相集合的模式,hibernate占主導(dǎo)地位。
    ?雖然DAO模式通過自動生成代碼效率不會低,但如果需求變更就比較麻煩,維護修改代碼較多,測試工作量也較大,?但Hibernate不是萬能的,在一些必要的應(yīng)用還是采用DAO模式,特別是性能相關(guān)的部分。
    ?
    ?
    ?廢話一大堆,也算把我的工作回顧了一遍,呵呵,這兩天簡單了解Spring框架,個人感覺Spring更像一個全面的J2EE框架解決方案,?希望能夠有時間系統(tǒng)的學(xué)習(xí)一把,大家有興趣的請多多交流,我會將我的學(xué)習(xí)心得和大家分享。

    posted on 2006-05-17 00:26 junky 閱讀(617) 評論(0)  編輯  收藏 所屬分類: spring

    主站蜘蛛池模板: 国产JIZZ中国JIZZ免费看| 亚洲a∨无码一区二区| 久久亚洲最大成人网4438| 久久精品国产亚洲AV久| 亚洲精品无码高潮喷水A片软| 亚洲av色香蕉一区二区三区蜜桃| 添bbb免费观看高清视频| 精品免费久久久久国产一区 | 无码免费午夜福利片在线| 天天干在线免费视频| 亚洲国产中文字幕在线观看| 亚洲va中文字幕无码久久不卡| 亚洲综合区图片小说区| 久久亚洲精品成人无码| 99在线免费视频| h在线观看视频免费网站| 日本媚薬痉挛在线观看免费| 国产av无码专区亚洲av果冻传媒| 亚洲视频在线免费观看| 亚洲欧洲AV无码专区| 黄床大片免费30分钟国产精品| 2020因为爱你带字幕免费观看全集 | 色窝窝亚洲av网| a级毛片毛片免费观看久潮| 中文字幕乱码免费视频| 亚洲av日韩片在线观看| 亚洲精彩视频在线观看| 国产AV日韩A∨亚洲AV电影| 久爱免费观看在线网站| 日韩免费无码一区二区视频| 亚洲人成网77777色在线播放| 国产 亚洲 中文在线 字幕| GOGOGO免费观看国语| 一个人在线观看视频免费| 中文字幕不卡亚洲| 亚洲AV无码乱码在线观看代蜜桃| 一级毛片正片免费视频手机看 | 一级毛片aaaaaa免费看| 免费无遮挡无码永久在线观看视频| 久久久久亚洲AV成人无码| 91久久青青草原线免费|