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

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

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

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    關于spring中的aop的解釋

    Posted on 2007-09-07 15:58 semovy 閱讀(327) 評論(1)  編輯  收藏 所屬分類: spring

    AOP是OOP的延續,是Aspect   Oriented   Programming的縮寫,意思是面向方面編程。AOP實際是GoF設計模式的延續,設計模式孜孜不倦追求的是調用者和被調用者之間的解耦,AOP可以說也是這種目標的一種實現。

         舉例:假設有在一個應用系統中,有一個共享的數據必須被并發同時訪問,首先,將這個數據封裝在數據對象中,稱為Data   Class,同時,將有多個訪問類,專門用于在同一時刻訪問這同一個數據對象。
      為了完成上述并發訪問同一資源的功能,需要引入鎖Lock的概念,也就是說,某個時刻,當有一個訪問類訪問這個數據對象時,這個數據對象必須上鎖Locked,用完后就立即解鎖unLocked,再供其它訪問類訪問。
      使用傳統的編程習慣,我們會創建一個抽象類,所有的訪問類繼承這個抽象父類,如下:
    abstract   class   Worker{
      abstract   void   locked();
      abstract   void   accessDataObject();
      abstract   void   unlocked();
    }

     缺點:

            *   accessDataObject()方法需要有“鎖”狀態之類的相關代碼。
            *   Java只提供了單繼承,因此具體訪問類只能繼承這個父類,如果具體訪問類還要繼承其它父類,比如另外一個如Worker的父類,將無法方便實現。
            *   重用被打折扣,具體訪問類因為也包含“鎖”狀態之類的相關代碼,只能被重用在相關有“鎖”的場合,重用范圍很窄。

                仔細研究這個應用的“鎖”,它其實有下列特性:
            *   “鎖”功能不是具體訪問類的首要或主要功能,訪問類主要功能是訪問數據對象,例如讀取數據或更改動作。  

    “鎖”行為其實是和具體訪問類的主要功能可以獨立、區分開來的

    “鎖”功能其實是這個系統的一個縱向切面,涉及許多類、許多類的方法。  

     因此,一個新的程序結構應該是關注系統的縱向切面,例如這個應用的“鎖”功能,這個新的程序結構就是aspect(方面)
      在這個應用中,“鎖”方面(aspect)應該有以下職責:
      提供一些必備的功能,對被訪問對象實現加鎖或解鎖功能。以保證所有在修改數據對象的操作之前能夠調用lock()加鎖,在它使用完成后,調用unlock()解鎖。
    AOP應用范圍

      很明顯,AOP非常適合開發J2EE容器服務器,目前JBoss   4.0正是使用AOP框架進行開發。
      具體功能如下:
    Authentication   權限
    Caching   緩存
    Context   passing   內容傳遞
    Error   handling   錯誤處理
    Lazy   loading 懶加載
    Debugging  調試
    logging,   tracing,   profiling   and   monitoring 記錄跟蹤 優化 校準


    Performance   optimization 性能優化
    Persistence  持久化
    Resource   pooling 資源池
    Synchronization 同步
    Transactions   事務
    AOP有必要嗎?
      當然,上述應用范例在沒有使用AOP情況下,也得到了解決,例如JBoss   3.XXX也提供了上述應用功能,但是沒有使用AOP。
      但是,使用AOP可以讓我們從一個更高的抽象概念來理解軟件系統,AOP也許提供一種有價值的工具。可以這么說:因為使用AOP結構,現在JBoss   4.0的源碼要比JBoss   3.X容易理解多了,這對于一個大型復雜系統來說是非常重要的。
      從另外一個方面說,好像不是所有的人都需要關心AOP,它可能是一種架構設計的選擇,如果選擇J2EE系統,AOP關注的上述通用方面都已經被J2EE容器實現了,J2EE應用系統開發者可能需要更多地關注行業應用方面aspect。


    評論

    # re: AOP的應用層面  回復  更多評論   

    2007-09-16 13:56 by 葉偉
    AOP的應用層面?有誰具體的說說嗎
    主站蜘蛛池模板: 毛片A级毛片免费播放| 8x成人永久免费视频| 好吊妞788免费视频播放| 亚洲一区二区三区免费在线观看 | 国产精品亚洲mnbav网站 | 国产福利在线免费| 国产成人精品日本亚洲网址| 91九色精品国产免费| 亚洲二区在线视频| 四虎影视www四虎免费| 男性gay黄免费网站| 亚洲免费日韩无码系列| 国产又黄又爽胸又大免费视频| 亚洲中文字幕久久精品无码喷水| a级成人免费毛片完整版| 亚洲国产国产综合一区首页| 1000部拍拍拍18免费网站| 亚洲成a人片在线看| 国产在线a不卡免费视频| 美女网站在线观看视频免费的| 亚洲综合国产一区二区三区| 久久国产免费一区二区三区| 亚洲精品国产手机| 免费无码看av的网站| 一个人看的免费视频www在线高清动漫| 亚洲熟妇丰满多毛XXXX| 2019中文字幕免费电影在线播放| 亚洲一区二区影视| 免费在线观看毛片| 久久久久免费看黄a级试看| 亚洲偷偷自拍高清| 久久精品亚洲福利| 国产成人精品免费视| 福利片免费一区二区三区| 亚洲av永久无码精品秋霞电影影院 | 亚洲?v女人的天堂在线观看| 免费鲁丝片一级观看| 亚洲婷婷五月综合狠狠爱| 免费无遮挡无遮羞在线看| 亚洲成AV人片高潮喷水| 伊人久久大香线蕉亚洲五月天|