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

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

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

    我的Blog我做主^_^

    走向一條通往JAVA的不歸路...

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      64 隨筆 :: 68 文章 :: 77 評論 :: 0 Trackbacks

    AOP是很多直覺難以理解的術語的根源。幸運的是,你只要理解三個概念,就可以編寫AOP模塊。這三個概念是:advice,pointcut和 advisor。advice是你想向別的程序內部不同的地方注入的代碼。pointcut定義了需要注入advice的位置,通常是某個特定的類的一個 public方法。advisor是pointcut和advice的裝配器,是將advice注入主程序中預定義位置的代碼。

    關注點(Concern):
             關注點也就是我們要考察或解決的問題.
             核心關注點:是指一個系統中的核心功能,也就是一個系統中跟特定業務需求聯系最緊密的商業邏輯.   
             橫切關注點<交叉關注點>:分散在每個模塊中解決同一樣的問題的關注點.

    切面(Aspect):
           切面是關注點的模塊化,關注點可能橫切多個對象。它除了包括屬性、方法以外,同時還包括切入點Pointcut、增強Advice等,另外,切面中還可以給一個現存的類添加屬性、構造函數,指定一個類實現某一個接口、繼承某一個類等。

    連接點(Join point):
             連接點也就是運用程序執行過程中需要插入切面模塊的某一點.連接點主要強調的是一個具體的"點"概念.這個點可以是一個方法、一個屬性、構造函數、類靜態初始化塊,甚至一條語句。

    切入點(Pointcuts):
             切入點指一個或多個連接點,可以理解成一個點的集合。

    切面:
           關注點的模塊化,關注點可能橫切多個對象.

    增強或通知(Advice):
             增強(Advice)里面定義了切面中的實際邏輯(即實現),比如日志的寫入的實際代碼,或是安全檢查的實際代碼。或者說:增強(Advice)是指在定義好的切入點處,所要執行的程序代碼。
              一般情況下增強(通知)主要有前增強、后增強、環繞增強三種基本類型。
              前增強(Before advice):是指在連接點之前,先執行增強中的代碼 。
              后增強(After advice):是指在連接點執行后,再執行增強中的代碼。后增強一般分為連接點正常返回增強及連接點異常返回增強等類型。
              環繞增強(Around advice):是一種功能強大的增強,可以自由改變程序的流程,連接點返回值等。在環繞增強中出除了可以自由添加需要的橫切功能以外,還需要負責主動調用連接點(通過proceed)來執行激活連接點的程序。

    引介(Introduction):
             引介是指給一個現有的類添加方法或字段屬性,引介還可以在不改變現有類代碼的情況下,讓現有的Java類實現新的接口,或者為其指定一個父類從而實現多重繼承。相對于增強(Advice)可以動態改變程序的功能或流程來說,引介(Introduction)則用來改變一個類的靜態結構。

    織入(Weaving):
             織入是指把解決橫切問題的切面模板,與系統中的其它核心模塊通過一定策略或規則組合到一起的過程。在Java領域,主要包括以下三種織入方式:
              1、運行時織入:即在JAVA運行的過程中,使用JAVA提供代理來實現織入。根據代理產生方式的不同,運行時織入又可以進一步分為2SE動態代理及動態字節碼生成兩種方式。由于J2SE動態代理只能代理接口,因此,需要借助于一些動態字節碼生成器來實現對類的動態代理。大多數AOP實現都是采用這種運行時織入的方式。
              2、類加載器織入:指通過自定義的類加載器,在虛擬機JVM加載字節碼的時候進行織入。
              3、編譯器織入:使用專門的編譯器來編譯包括切面模塊在內的整個應用程序,在編譯的過程中實現織入,這種織入是功能最強大的。

    攔截器(Interceptor):
              攔截器是用來實現對連接點進行攔截,從而在連接點前或后加入自定義的切面模塊功能。

    目標對象(Target object):
             指在基于攔載器機制實現的AOP框架中,位于攔截器鏈上最未端的對象實例。一般情況下,攔截器未端都包含一個目標對象,通常也就實際業務對象。當然,也可以不使用目標對象,直接把多個切面模塊組織到一起,形成一個完整最終應用程序,整個系統完全使用基于AOP編程方法實現,這種情況少見。 

    AOP代理(Proxy):
             AOP代理是指在基于攔截器機制實現的AOP框架中,實際業務對象的代理對象。這個代理對象一般衩切面模塊引用,AOP的切面邏輯正是插入在代理對象中來執行的。AOP代理的包括J2SE的代理以及其它字節碼生成工具生成的代理兩種類型。

    面向對象編程(OOP)解決問題的重點在于對具體領域模型的抽象,而面向切面編程(AOP)解決問題的關鍵則在于對關注點的抽象。


    Spring-AOP:使用基于代理及攔截器的機制,與Spring IOC容器融入一體的AOP框架.Spring AOP采用運行時    織入方式,使得可以在基于

    Sping框架的應用程序中使用各種聲明式系統級服務.


     



    posted on 2007-04-02 15:27 java_蟈蟈 閱讀(1169) 評論(0)  編輯  收藏 所屬分類: SPRING

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲乱码一二三四五六区| 久久久影院亚洲精品| 亚洲福利电影一区二区?| 久久美女网站免费| 久久精品国产亚洲AV麻豆~| 成人免费av一区二区三区| 亚洲欧洲无码AV电影在线观看 | 日本不卡免费新一二三区| 亚洲三级在线观看| 最好免费观看韩国+日本| 亚洲国产欧美一区二区三区| 午夜爱爱免费视频| 羞羞的视频在线免费观看| 亚洲欧洲日本在线| 国产成人免费ā片在线观看老同学 | 亚洲影视自拍揄拍愉拍| 成人毛片18岁女人毛片免费看| 欧洲 亚洲 国产图片综合| 国产成人精品免费视频大全五级| 视频一区在线免费观看| 亚洲自偷自偷在线制服| 久久A级毛片免费观看| 国产午夜亚洲精品| 日韩亚洲国产二区| 日本亚洲欧洲免费天堂午夜看片女人员 | jizz在线免费观看| 亚洲一级二级三级不卡| 免费毛片在线播放| 最近中文字幕免费大全| 亚洲一级毛片中文字幕| 免费a级毛片永久免费| 国产无遮挡无码视频免费软件| 亚洲国产午夜精品理论片| 免费日韩在线视频| 久久99精品国产免费观看| 亚洲欧美成aⅴ人在线观看| 国产成人麻豆亚洲综合无码精品| 91福利视频免费| 西西人体大胆免费视频| 亚洲国产人成网站在线电影动漫 | 亚洲国产综合无码一区二区二三区|