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

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

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

    設(shè)計(jì)java

    j2ee輕量級(jí)框架,IMVC,IORM && web網(wǎng)絡(luò)游戲

    IMVC--j2ee輕量級(jí)MVC框架介紹

        InstantMVC是我最近開(kāi)發(fā)的一個(gè)j2ee輕量級(jí)MVC框架,寫這個(gè)框架前剛好做完一個(gè)webwork+spring+InstantORM的項(xiàng) 目,對(duì)于開(kāi)發(fā)過(guò)程中的一些不舒服的地方,就像要改進(jìn)著試試寫一個(gè)框架,于是就開(kāi)始寫了,寫這個(gè)框架的沖動(dòng)主要有以下幾點(diǎn):
        1.討厭的action配置,無(wú)論是strtus還是webwork,都有一大堆的action配置文件,strtus加上bean就更多,如果 webwork配合spring,那么一個(gè)action就要配置一個(gè)spring Bean,一個(gè)webwork action映射,隨著項(xiàng)目的擴(kuò)大,后來(lái)實(shí)在是讓人有些受不了,再則,隨著項(xiàng)目的擴(kuò)大,action數(shù)目的增加,每次改動(dòng)重新啟動(dòng)服務(wù)器的時(shí)間浪費(fèi)就更 大,所以項(xiàng)目越來(lái)越大,感覺(jué)越來(lái)越痛苦,雖然配置型的action,對(duì)于項(xiàng)目的移植有一定的好處,但是一般的項(xiàng)目是很少回過(guò)頭去修改action映射,就 算修改,在java文件中修改也是可以接受的。

        2.關(guān)于驗(yàn)證,struts和webwork的驗(yàn)證都是基于xml配置的,就我個(gè)人而言,是比較討厭xml配置這個(gè)東西的,所以我一直用不慣他們的驗(yàn)證框 架,而且一旦用到驗(yàn)證框架,必須用到UI組件,在webwork中用freemarker作為模板的時(shí)候,UI組件是比較費(fèi)資源的(可能成為潛在的性能瓶 頸),如果有一個(gè)不用UI組件而且外面封裝客戶端和服務(wù)器端驗(yàn)證的MVC框架,我想會(huì)比較爽。

        3.關(guān)于view,我比較喜歡springMVC中的那種直接在action中return的形式,webwork和struts的配置方式我也很不喜歡。

        4.應(yīng)該是性能考慮,webwork的action非單利可能導(dǎo)致性能問(wèn)題(雖然沒(méi)有被充分證明),struts2也走了這條路。

        基于這些考慮,我打算開(kāi)發(fā)自己的MVC框架,而且現(xiàn)在已經(jīng)小有所成,基本功能已經(jīng)完成,下面簡(jiǎn)單講下InstantMVC框架的主要特征
        1.零配置,零配置不是說(shuō)沒(méi)有配置,而是說(shuō)不用配置action和result view,整個(gè)mvc框架只有一個(gè)整體的配置文件,所有映射關(guān)系都是通過(guò)默認(rèn)規(guī)則來(lái)建立的。

        2.類似action/form 形式,這里說(shuō)是類似,因?yàn)镮nstantMVC可以配置讓get方法是否支持form,也就是get方法可以不用form,直接通過(guò)一個(gè)Map獲得請(qǐng)求參 數(shù),也可以配置get填充form形式,InstantMVC的action可以配置為是單利或者非單利,不過(guò)一般在action中不推薦存放非線程安全 的變量,所以建議配置為單利。

        3.action中兩個(gè)參數(shù)一個(gè)是Form的Object,一個(gè)是Map,容易單元測(cè)試,不需要引入Servlet部件,但是對(duì)于一些session等操 作可以通過(guò)InstantContext獲得HttpSerlvetrequest操作,可以說(shuō)InstantMVC對(duì)于容器無(wú)關(guān)性是介于webwork 和struts之間的。

        4.最簡(jiǎn)單的驗(yàn)證集成方式,所有驗(yàn)證代碼寫到action中,在view中不用配置UI組件,支持客戶端和服務(wù)器端雙重驗(yàn)證,可以單獨(dú)開(kāi)啟一方關(guān)閉一方。

        5.ajax View的集成,這里的集成不像dwr那樣完全集成,而是一種半集成方式,客戶端用到ajax框架還是需要用戶自己選擇,這樣提供了很大的靈活性。 InstantMVC的View有好幾種形式,比如挑戰(zhàn)到另一個(gè)action的view,直接返回的view,ajax的view等, InstantMVC的ajax是和普通的action一樣的,只不過(guò)返回一個(gè)ajax的View就成了ajax了。ajax的view可以返回任何對(duì)象 的json。在客戶端很方便的獲得,這一點(diǎn)有點(diǎn)像dwr的返回結(jié)果,不過(guò)dwr需要配置,InstantMVC不用。而且我們可以設(shè)置開(kāi)啟ajax的安全 驗(yàn)證,開(kāi)啟后將不允許其他域方法ajax的action。

        6.支持AOP攔截器,模仿webwork那樣,可以自定義攔截器。

        7.集成了上傳組件,和驗(yàn)證一樣,可以在action中配置。

        大概就是這些特性,這些特性都很讓我著迷。現(xiàn)在這些特性基本上都能工作,不過(guò)穩(wěn)定性兼容性方面還有待提升,同時(shí)還需要大量的性能方面考慮(雖然現(xiàn)在的性能比其他MVC只會(huì)高不會(huì)低)。今天剛把blog搬到這里來(lái),以后這里會(huì)主要寫關(guān)于我的框架的一些問(wèn)題等。


    --InstantMVC:j2ee輕量級(jí)mvc框架

    posted on 2008-06-10 16:24 剎那 閱讀(2840) 評(píng)論(4)  編輯  收藏 所屬分類: 我的j2ee輕量級(jí)框架

    Feedback

    # re: IMVC--j2ee輕量級(jí)MVC框架介紹 2008-06-11 12:57 jeasonzhao

    我的神啊,總算找著知音了  回復(fù)  更多評(píng)論   

    # re: IMVC--j2ee輕量級(jí)MVC框架介紹 2008-06-11 18:30 剎那

    @jeasonzhao
    呵呵。。兄弟過(guò)獎(jiǎng)了  回復(fù)  更多評(píng)論   

    # re: IMVC--j2ee輕量級(jí)MVC框架介紹 2011-07-31 19:10 inhv

    老兄, 你的 MVC jar 包呢? 我想用用試試。 inhv@163.com  回復(fù)  更多評(píng)論   

    # re: IMVC--j2ee輕量級(jí)MVC框架介紹 2012-03-25 21:47 heymans

    老兄,求你的mvc ~~~~~ heyange2002@163.com  回復(fù)  更多評(píng)論   


    主站蜘蛛池模板: 亚洲 日韩经典 中文字幕 | 亚洲中文字幕久久精品无码APP| 一区二区三区在线免费观看视频| 亚洲国产精品VA在线观看麻豆| 精品免费久久久久久久| 亚洲精品天堂无码中文字幕| 中文字幕在线亚洲精品| 免费毛片a在线观看67194| 日韩电影免费在线观看网址| 亚洲国产精品一区二区久久| 暖暖在线日本免费中文| 性无码免费一区二区三区在线| 在线亚洲午夜片AV大片| 国产亚洲精品xxx| 免费看少妇作爱视频| 日韩插啊免费视频在线观看| 精品亚洲成a人在线观看| 色噜噜综合亚洲av中文无码| 国产免费资源高清小视频在线观看| 免费精品一区二区三区第35| 国产精品亚洲专区无码牛牛 | 国产VA免费精品高清在线| 亚洲AV色吊丝无码| 亚洲s色大片在线观看| 国产精品色午夜免费视频| 中文字幕免费视频一| 久久国产福利免费| 亚洲av无码偷拍在线观看| 亚洲麻豆精品果冻传媒| 亚洲午夜福利717| 亚洲第一成人影院| 免费观看毛片视频| 亚洲免费闲人蜜桃| 日本免费一区二区久久人人澡| 国产亚洲日韩在线a不卡| 久久精品国产亚洲AV久| 久久久久久亚洲精品成人| 亚洲熟妇无码AV在线播放| 亚洲成A人片77777国产| 国产精品美女自在线观看免费 | 小草在线看片免费人成视久网|