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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    這是[挑戰MVC極限]EasyJWeb-1.0特性的第四篇文章,今天主要介紹零配置及慣例代替配置。

    配置是好還是壞

      首先,我承認配置是好東西,它能夠通過修改程序以外的數據來改變系統的運行性質或功能,大大提高了系統的靈活性,可維護性,從而延長了一個系統的存活期。
      跟其它任何事情一樣,物極必反。當一個好的東西泛濫成災的時候,我們也會產生厭惡,走向另外一個極端。而縱觀今天我們正統的JavaEE應用,配置可謂無處不在,由于過分的強調了靈活性、可擴展性、可選擇性,大到Spring小到log4j的各種框架、輔助工具都會提供配置文件來改變他們的運行屬性。一個JavaEE應用往往需要到很多的框架及輔助工具,比如Spring的bean配置文件、dwr配置文件,hibernate的對象-關系映射文件、struts的配置文件、驗證文件等。好大一堆啊,我們看看appfuse中的配置文件,而維護這些配置文件,并非一個簡單的事兒。

    如何簡化配置

      為了解決過度“配置”給我們帶來的配置恐懼病,唯一的辦法是簡化配置。
      我們如何簡化配置,使配置盡量的少,盡量的簡單,甚至把配置減到零呢?在整個java社區,有很多人在做著這樣事兒。減化的流程大致如下:
      第一步:使用注解,把不是頻繁變動的配置信息從外部配置文件遷移到與這些配置緊密聯系的java文件中,可以減少2/3以上的配置信息。
      第二步:一些具有很多習慣性的配置屬性,可以通過慣例約定的方式,來代替配置,從而又可以減掉一部分配置。
      第三步:最后余下的即是跟程序運行環境緊密相關,易變的配置文件。比如針對數據庫連接信息dataSource的配置。
      這樣就可以在不影響系統的靈活性、可擴展性、移植性的情況下,最大限度地減化了配置。

    零配置

      EasyJWeb在開發的過程中,在配置處理上,一直把減化配置作為一個重點注意事項,并實現了零配置。有了零配置支持,你可以不寫一句配置文件,就能實現立體感超強的JavaEE應用。dao、service、module、action等,都會按照慣例約定的方式來工作。
      比如,我們需要寫一個用戶登錄的Action,可以在com.easyjweb.action這個包下面,添加一個名為LoginAction的類,可以繼承AbstractPageAction或者直接實現IWebAction接口。 使用AbstractPageAction能自動識別模板,實現起來最簡單,代碼內容如下:
    public class NewsAction extends AbstractPageCmdAction {
    public Page login(WebForm form,Module module)
    {
     
    if("xiaoxiao".equals(form.get("name"))&&"123".equals(form.get("password")))
     
    {
      
    return module.findPage("success");
     }

     
    else return module.findPage("index");
    }
     
    在WEB-INF/views/login/目錄中,存放兩個文件,一個是名為index.html,主要是登錄表單;另外一個是success.html,內容為登錄成功提示頁面。
    這樣即可通過/login.ejf來訪問這個登錄應用。
    由此可見,我們確實不需要一句配置文件,就能讓EasyJWeb這個MVC框架運轉起來。

    慣例(約定)代替配置

      在上面“零配置”示例中,我們沒有使用一句配置文件,在這里EasyJWeb中的“慣例(約定)代替配置”功能起了非常大的作用。按約定方式來尋找Action、尋找視圖模板頁面。才使得mvc能工作起來。
      慣例代替配置,可以大大提高軟件的生產力。在EasyJWeb中,很多地方都使用慣例代替配置,下面進一步介紹智能頁面查詢,這是一個慣例代替配置的例子。
    在一個基于AbstractPageCmdAction的模塊PersonAction中,有下面的方法:

    public void doEdit()
    {
    }

    public void doList()
    {
    }


      其中doEdit方法中可以不包含一句代碼,也不需要有任何視圖模板的代碼。EasyJWeb在沒有找到針對該模塊相關Page配置的情況下,此時會自動應用“慣例代替配置”的功能,從而找到/views/person/edit.html作為doEdit的頁面模板;同理,EasyJWeb的“慣例代替配置”還會把/views/person/list.html作為doList的頁面模板。
    除了模板以外,在代碼生成,JPA Entity標簽處理、通用業務封裝,驗證等均引入了“慣例代替配置”。在我們的實踐中,“慣例代替配置”確實是一個非常牛的東西,他們幫我們省了很多事兒。

    posted on 2007-08-15 15:38 簡易java框架 閱讀(1379) 評論(4)  編輯  收藏

    FeedBack:
    # re: 零配置及慣例代替配置 2007-08-15 17:20 編程、設計是職業更是愛好
    濫用的配置文件相當于緊箍咒,看上去美妙,戴上去...  回復  更多評論
      
    # re: 零配置及慣例代替配置 2007-08-15 22:58 BeanSoft
    最近教學生用 Struts, Spring, Hibernate 整合開發, 天啊, 各種錯誤都讓你累個半死, 一多半是配置文件的錯誤....  回復  更多評論
      
    # re: 零配置及慣例代替配置 2007-08-16 09:06 terrybean
    樓主介紹的這個框架看起來確實不錯。  回復  更多評論
      
    # re: 零配置及慣例代替配置 2007-08-16 10:34 mingj
    ...框架的侵入性也太強了一點
      回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 四虎精品成人免费视频| 亚洲色精品VR一区区三区| 一个人晚上在线观看的免费视频| 18禁成年无码免费网站无遮挡| 亚洲另类图片另类电影| 亚洲国产婷婷综合在线精品| 亚洲欧美成人综合久久久| 女性自慰aⅴ片高清免费| 亚洲精品国产精品| 日本免费人成黄页网观看视频| 久久亚洲中文字幕无码| 免费一级做a爰片久久毛片潮喷| 边摸边脱吃奶边高潮视频免费| 4444www免费看| 亚洲 欧洲 视频 伦小说| 国产成人精品123区免费视频| 亚洲嫩模在线观看| 羞羞视频在线免费观看| 亚洲精品网站在线观看不卡无广告| 免费手机在线看片| 国产亚洲综合久久系列| 99re6免费视频| 国产亚洲福利在线视频| www.91亚洲| 玖玖在线免费视频| 亚洲AV成人影视在线观看| 免费**毛片在线播放直播| 日本免费电影一区二区| 亚洲精品无码成人片久久| 猫咪免费人成网站在线观看| 亚洲人成自拍网站在线观看| 免费大片在线观看网站| 在线人成免费视频69国产| 精品久久久久久亚洲| 最近在线2018视频免费观看| 亚洲AV网一区二区三区| 亚洲啪啪AV无码片| 成全视频在线观看免费| 亚洲激情视频图片| 亚洲一区二区三区香蕉| 精品熟女少妇AV免费观看|