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

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

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

    大音希聲、大象無形

    Java企業級應用軟件開發探討

    容器和輕量級容器

    什么是容器?

    JavaEE原話:“Containers are the interface between a component and the low-level platform-specific functionality that supports the component. ”
    翻譯過來就是“容器就是底層的、與支撐平臺相關的、對組件進行功能化支持的接口”。

    難以理解?

    通俗的解釋就是,容器是一系列為了實現分層的概念而定義的一系列功能的平臺無關的標準。它的主要用處就是平臺無關性和底層操作封裝性(Java的核心哲學)。

    說白了,容器就是Java的核心哲學在企業級應用范圍內的具體實現。

    那么使用容器,能給我們帶來多大的好處呢?

    1. 強制性分層:通過Java的接口定義機制和強類型編譯器的支持,在底層就實現了分層的概念。即使頂層的實現十分沒有經驗,底層的分層還是可以辨認的。
    2. 底層操作封裝:以服務端應用服務器為中心的三層企業開發涉及到的技術相當麻煩和復雜,但是之間又有相當多的共性,所以進行有效的底層次的封裝是可行的而且是有必要的。這樣開發人員的工作就可以建立在一個穩固的基礎上,而不是靠自己的經驗去應對這些問題。
    3. 平臺無關性:這個也是Java的核心哲學,至于好處嗎,我就不多說了
    4. 代碼的重用可能性提高:記住,是可能性。具體的重用性要看開發的方式和開發后代碼的質量。

    就JavaEE而言,它的標準里面只有WEB容器和EJB容器,這兩個容器已經充分體現了它們的概念。

    但是,還有一種概念上的容器,它的概念與上述概念不同,所以被稱作輕量級容器。

    首先,輕量級容器不是接口的抽象,沒有JavaEE概念中的部署和移除,從概念上說輕量級容器就是一個擁有IOC支持的Bean工廠。

    從形象的角度上來看,輕量級容器是一個盒子,盒子里面裝滿了貼有標簽的JavaBean,對外界而言,它是一個魔盒,只要給它一個咒語(咒語必須正確),它就能給你一個禮物。

    輕量級容器目前而言沒,有相應的標準,但是它的使用范圍卻比真正的JavaEE標準要寬泛得多(誰不喜歡禮物呢?)。
    • 首先,它是一個非常好的JavaBean工廠(誰沒用過工廠模式?)
    • 其次,它能夠給你的代碼帶來IOC支持(懶人最喜歡的生活方式莫過于東西自己來找它)
    • 再次,一般來說,輕量級容器都可以通過動態代理和字節碼增強的方式提供AOP的支持

    總而言之,輕量級容器是JavaEE容器概念的一種有力補充,它的用法更加靈活,適用的范圍更廣,從目前的經驗上看,開發、測試和管理起來也要比標準容器對象開發起來簡單。

    • 輕量級容器一般不會給你提供分布式和集群的支持,因為它的優點就是靈活而不笨重。
    • 輕量級容器就像作漢堡的那兩塊面包,你想吃什么就往里夾,但是漢堡好吃不好吃,主要就在你放進去的東西和搭配的手藝。
    • 輕量級容器不能強制的要求你分層
    • 輕量級容器的底層封裝一般以模塊加載進容器的方式實現。
    • 有的人不愛吃漢堡。

    總體評價:

    容器是Java的核心哲學的體現,而輕量級容器則是工程師開發文化的體現,它可以很靈活的幫助你,對你沒有什么具體的要求。二者不會出現誰替代誰的情況。具體的使用方式,還得看你在設計時所處的情況。

    更正一下: 就JavaEE而言,它的標準里面只有WEB容器和EJB容器是對它的服務端而言的。客戶端還有Application Container和Applet Container兩個容器。

    posted on 2006-03-24 11:58 guitarpoet 閱讀(1287) 評論(1)  編輯  收藏 所屬分類: 綜述

    Feedback

    # re: 容器和輕量級容器 2006-03-24 13:22 小陸

    容器就是一個控制對象生死的東西,他對外提供一個接口,用戶實現這個接口,然后就可以把自己寫的業務對象放到容器里面。需要的時候拿出來用,不需要的時候再還給容器,對象的生死存亡由容器負責,容器還可以為這個對象賦予很多額外的功能。
    java就是object的容器,我們寫的任何一個類都實現了object的接口,當我們需要一個對象的時候,就調用new,容器給我們一個對象。當我們不需要這個對象的時候,容器自動的回收內存。容器賦予對象一些額外的能力,如反射。為什么c++沒有反射而java可以,就是因為java是一個容器。
    j2ee一個容器的標準,他定義了一些接口,用戶必須實現這些接口,才能夠把對象放到容器里面。作為報答,j2ee為這些對象賦予了很多強大的功能:遠程調用、分布式、事務……  回復  更多評論   


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


    網站導航:
     
    主站蜘蛛池模板: 免费无遮挡无码视频在线观看| 亚洲人成网站在线在线观看| 久久久精品国产亚洲成人满18免费网站 | 一区二区三区免费视频播放器 | 久久久精品视频免费观看| 亚洲精品国产成人影院| 一级一黄在线观看视频免费| 中文字幕在线亚洲精品| 拍拍拍无挡免费视频网站| 亚洲色偷偷偷鲁综合| 可以免费观看的毛片| 色播亚洲视频在线观看| 亚洲美女视频免费| 亚洲国产日韩精品| 四虎影视永久免费视频观看| 免费福利资源站在线视频| 国产av无码专区亚洲av果冻传媒 | eeuss免费影院| 亚洲码国产精品高潮在线| 免费看男人j放进女人j免费看| 亚洲国产人成在线观看69网站| 免费专区丝袜脚调教视频| 2020亚洲男人天堂精品| 亚洲AⅤ无码一区二区三区在线| 一级一级毛片免费播放| 亚洲精品天天影视综合网| 青青草免费在线视频| 国产精品亚洲а∨无码播放麻豆| 国产乱辈通伦影片在线播放亚洲| 一级毛片免费视频| 亚洲av纯肉无码精品动漫| 亚洲精品国产字幕久久不卡| 亚洲精品在线免费看| 日韩一区二区三区免费播放| 亚洲视频在线观看免费| 国产免费人人看大香伊| 免费看黄的成人APP| 亚洲中文字幕久久精品无码A| 免费人成年激情视频在线观看| 日韩视频在线观看免费| 亚洲精品乱码久久久久蜜桃|