• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 測試技術
    • 博客
    • 視頻
    • 開源
    • 論壇
    • 沙龍
    • 下載
    • 雜志
    • 招聘

    您的位置:您的位置:軟件測試技術門戶 >> 軟件測試技術 >> 開發語言 >> Java >> 查看資訊

    字號: | 推薦給好友 上一篇 | 下一篇

    AOP及其Java實現機制

    發布: 2008-5-28 10:20 | 作者: 不詳 | 來源: blog.csdn.net | 查看: 60次 | 進入領測軟件測試網論壇討論

    領測軟件測試網

    7Bfo,xN)r:q#v 軟件測試技術門戶-LE(h[ x M

    Jboss中參考,切入點與方面也由普通Java對象實現,并使用XML文件配置。Jboss的連接點模型與AspectJ略有不同,提供了一系列預定義的切入點,包括類匹配,方法調用,構造器調用,域訪問,特定的調用與被調用關系。通過這些切入點的邏輯運算,可以實現更為復雜的切入點。方面為Java類,參考是其中的一個方法,方面中不含切入點,方面主要為各種攔截器(Interceptor),攔截器即為只含一個參考的方面,單一連接點上可由多個攔截器形成攔截器鏈,攔截器執行額外的操作。對方法的攔截由Advisor類管理,在連接點依次調用攔截器,并最終調用被邏輯的方法。而關于切入點,參考已及方面的信息由AspectManager管理。此外,Jboss提供對元數據的支持,用于為類,方法,構造器以及域添加額外的屬性,并可在運行期訪問。軟件測試技術門戶 r#t(ve*H0I+x
    為實現攔截,Jboss需要修改類的字節碼,大致過程如下。XML配置文件中關于切入點,攔截器,元數據以及混合類的信息在應用程序部署時被讀入、解析,并生成相應的對象,這些信息與實例化的對象由AspectManager管理。在需要混入方面代碼的類載入時,AspectManager將創建Advisor類,將方面相關信息傳遞給它,并對類的字節碼進行修改,之后將修改過的字節碼交給類載入器完成類的裝載。字節碼的修改主要是對被載入的類添加一系列方法用于代理那些匹配連接點的方法調用,構造器調用,域訪問以及方法導入,轉為對Advisor類相應方法的調用。類中各方法將重命名,保留原方法體,并添加一個與原方法同名的方法,在這個方法中調用那些代理方法,用來將調用代理給Advisor類,或調用重命名的原方法。對于域訪問,分別添加兩個方法,對應于讀與寫操作,將域訪問代理至Advisor類,在訪問這個域的類中,則需將對域的訪問轉換為對上述方法的調用。對于構造器調用,則添加一個方法,將調用代理至Advisor類,并對構造對象的類的構造代碼作相應轉換。對于導入,被導入的類中將添加一個混合類實現的引用,并添加混合類接口中的方法,將對混合類方法的調用代理至Advisor類,并最終調用混合類的實現。相關類載入后,初始化Advisor類,填入攔截器鏈,以完成整個處理過程。

    6Bzx,j4vu;T$E 軟件測試技術門戶y'T ~)k Z-F&xe

    4結束語軟件測試技術門戶,Q rh{;C

    軟件測試技術門戶|SpsD5N

    AOP不是一種取代傳統編程技術的技術,而是對于這些技術的補充,它解決了一些傳統技術無法很好解決的問題。特別是對于面向對象技術,能起到相互補充的作用,解決橫切關注分散在核心代碼中,無法模塊化的問題,對軟件系統中不同的關注點進行分離。雖然,目前AOP仍處于發展階段,但已經出現眾多的實際應用與學術研究項目,為AOP積累了一定的理論基礎,出現了一些公認的基本要素?梢灶A見,現在的AOP必將像20年前的OOP一樣為軟件開發帶來變革。軟件測試技術門戶kp7p7s;zD

    軟件測試技術門戶 b 老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>