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

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

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

    posts - 431,  comments - 344,  trackbacks - 0

    英文原文出自《Spring In Action》

    像絕大多數的技術一樣,AOP也有自己的術語。不幸的是,很多用于描述AOP特征的術語并不直觀,但是,它們已經成為了AOP語言的一部分,如果你想理解AOP,你必須學會這門AOP語言。通俗地說,你想在圈子里面混,你就得學會說行話。

    Aspect

    Aspect是你正在實現的一個cross-cutting的功能,它是你應用中正在模塊化的一個方面(aspect)。比較通用的一個例子是日志。記錄日志是一項貫穿整個應用的服務。由于應用基本以功能(基于業務邏輯)為界限進行劃分模塊,故通過繼承的方法來重用日志模塊似乎不合理。但是,你可以創建一個日志aspect來實現你的想法。

    Joinpoint

    Joinpoint是在應用運行中那些aspect可以插進來的點。這個點可能是一個被調用的方法,一個被拋出的異常,甚至可以是一個被改變的字段。在這些點處添加你的aspect的代碼,就可以為你的應用增加一些新的行為。

    Advice

    Advice是對aspect的一個具體實現。它向系統建議(advice)增加一個新的行為。在我們的日志例子中,日志advice包含了記錄日志的代碼并實現真正的日志記錄,比如將日志寫入文件。Advice被添加到joinpoint點上。

    Pointcut

    Pointcut定義了advice應該被插入到什么樣的joinpoint點上。Advice可以被應用到任意AOP框架支持的joinpoint上。當然,你不會希望將所有的aspect應用到可以被應用的joinpoint上面。Pointcut讓你可以指定advice應用的位置。通常,你用具體的類名或方法名,或者一些符合表達式的類或方法名來指定pointcut。 一些AOP框架允許你創建動態的pointcuts,這些pointcuts可以在運行的時候動態決定是否需要應用advice,比如方法的參數值。

    Introduction

    Introduction可以讓你添加方法和屬性到已經存在的類中。例如,你可以創建一個Auditable的advice類用來跟蹤某對象最后改變的時期。這個可以簡單地通過一個屬性記錄狀態,并添加一個setLastModified(Date)方法來實現。然后,它可以被引入(introduce)到已經存在的類。這樣,已有的類不需要做任何改變就有了個新的功能。

    Target

    Target是正在被advice的類,這可以是你自己寫的一個類或者是你想增加新的功能的第三方提供的類。沒有AOP,這個類必須被包括自身主要的邏輯并且額外加上那些cross-cutting關心的邏輯。有了AOP,target類只需要關注自身所需要關心的,而把那些應用于自身的advices拋到腦后。

    Proxy

    Proxy是被應用了advice的target實例。從客戶實例的角度來看,無論是target實例(AOP之前)還是proxy實例(AOP以后),都是一樣的,當然,它們本來就應該是一樣的。也就是說,你的既有應用不需要做改變來支持proxy類。

    Weaving

    Weaving是指把aspects應用到目標實例上去創建一個新的proxied實例的過程。Aspects在目標對象的joinpoint被組合(weave)進去。Weaving可以發生在目標類生存的如下時間:

    • 編譯期 -- Aspects在目標類編譯期被weave。這個需要特殊的編譯器。
    • 載入期 -- Aspects在目標類載入期被weave。這個需要特殊的類裝載器。
    • 運行期 -- Aspects在應用運行時的某個時期被weave。一般來說,AOP容器在weave in aspects的時候會動態創建proxy類來代理target類。

    圖例:

    PS:



    Trackback: http://tb.donews.net/TrackBack.aspx?PostId=697258

    posted on 2006-12-27 10:51 周銳 閱讀(425) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 羞羞视频免费网站日本| 国产精品亚洲精品青青青| 黄页免费视频播放在线播放| 最新免费jlzzjlzz在线播放| 亚洲欧洲日韩国产一区二区三区| 日本高清在线免费| 亚洲av无码一区二区三区观看| 少妇高潮太爽了在线观看免费| 亚洲人成综合网站7777香蕉| 四虎影院免费在线播放| 亚洲AV无码国产剧情| 免费a级毛片在线观看| 一本一道dvd在线观看免费视频| 在线观看午夜亚洲一区| 久久青草免费91观看| 中文字幕亚洲综合久久2| 无码少妇一区二区浪潮免费| 久久久久亚洲AV无码去区首| 亚洲中文无韩国r级电影| 日本中文字幕免费高清视频| 亚洲国产精品美女| 天天天欲色欲色WWW免费| 一级午夜a毛片免费视频| 久久精品国产亚洲香蕉| 国产卡一卡二卡三免费入口| 亚洲欧美日韩中文字幕在线一区| 亚洲国产成人乱码精品女人久久久不卡 | 婷婷亚洲久悠悠色悠在线播放| 毛片无码免费无码播放| 香蕉大伊亚洲人在线观看| 亚洲精品国精品久久99热| 久久国产乱子伦精品免费看| 亚洲熟女综合色一区二区三区| 亚洲精品tv久久久久| 一级毛片免费不卡在线| 亚洲熟妇AV一区二区三区浪潮 | 久久精品视频免费看| 一本色道久久88亚洲精品综合| 亚洲午夜精品久久久久久浪潮| 中文字幕免费视频| 美女被吸屁股免费网站|