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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Spring AOP學習體會


    需明確的幾個概念:
                                                      
    1、通知(Advice):用于告知系統將有哪些新的行為。
    2、切入點
    (Pointcut):
    定義了通知應該在應用到那些連接點
    3、目標對象
    (Target)
    :被通知的對象。
    4、
    代理(Proxy):將通知應用到目標對象后創建的對象。

    Spring有兩種代理創建方式:

         1.如果目標對象實現了一個或多個接口暴露的方法,Spring將使用JDKjava.lang.reflect.Proxy創建代理。這個類讓Spring動態產生一個新的類,它實現了所需的接口,織入了通知,并且代理目標的所有請求。(這篇主要介紹這個方式)

    2.如果目標對象沒有實現任何接口,Spring使用CGLIB庫生成目標對象的子類。在創建這個子類的時候,Spring將通知織入,并且將對目標對象的調用委托給這個子類。

     下面以一個實例說明Spring AOP的基本開發方法:

    一.創建通知

    Spring連接點模型是建立在方法攔截上,這意味著你編寫的Spring通知會在方法調用周圍的各個地方織入系統中。

    1

        TestAopServiceAdvice實現了接口MethodBeforeAdvice(前置通知),并實現它的惟一的方法before,這個類就可以在調用目標對象前被調用。同樣的還有AfterReturningAdvice(后置通知),MethodInterceptor(環繞通知),異常通知(ThrowsAdvice),引入通知等。

        在這個方法中我們輸出了一個字符串TestAopServiceAdvice,用于驗證這個方法是否在目標對象前調用了。

    注意:我們無法改變before方法中的參數argstarget中的值,args中存的是原來要傳入目標對象的變量,target即指目標對象。

     二.配置Spring XML配置文件

    要在Spring中實現AOP,一般情況下需要配置4bean

    1.目標對象(target

    2.通知(advice)

    3.切入點(pointcut)

    4.代理(proxy)

    2

    切入點又分為靜態切入點和動態切入點
    1、
     靜態切入點的意思是通知總是被執行,
    也是最常用的一種切入點。
    2、
       動態切入點根據運行時方法的參數值決定通知是否被執行。

    在圖2中,定義了使用了一個Spring提供的靜態切入點

        NameMatchMethodPointAdvisor,它保證了當被調用的方法的名字與給出的映射名字相匹配的時候,這個切入點才匹配。

       Spring提供的另一個靜態切入點為RegexpMethodPointcutAdvisor,讓你可以利用正則表達式來定義切入點.

     使用ProxyBeanFactory可以創建一個被通知的類,即代理對象。它的最常用的個控制行為的屬性是:
    1、
    proxyInterfaces
    :代理應該實現的接口列表
    2、
    interceptorNames:需要應用到目標對象上的通知Bean的名字??梢允菙r截器、Advisor或其他通知類的名字。

    注:在用容器的getBean方法時,應該是getBean(代理類的名字),而不是getBean(目標對象的名字),否則AOP無法工作。



    posted on 2007-12-02 09:03 々上善若水々 閱讀(1080) 評論(0)  編輯  收藏 所屬分類: Spring

    主站蜘蛛池模板: 成年性生交大片免费看| 9277手机在线视频观看免费| 日本免费中文字幕在线看| 亚洲日本国产综合高清| 久久精品免费全国观看国产| 亚洲一区二区三区亚瑟 | 久久精品国产亚洲Aⅴ香蕉| 爱情岛亚洲论坛在线观看 | 国产亚洲精品线观看动态图| 国产99精品一区二区三区免费 | 亚洲Av无码精品色午夜| 性无码免费一区二区三区在线 | 亚洲一区二区三区不卡在线播放| 在线观看的免费网站| 国产亚洲精品VA片在线播放| 日日AV拍夜夜添久久免费| 全部一级一级毛片免费看| 亚洲区小说区图片区| 日韩免费在线观看视频| 亚洲国产综合在线| 日韩午夜免费视频| 好猛好深好爽好硬免费视频| 亚洲国产精品一区| 国产精品美女自在线观看免费 | 亚洲精品V欧洲精品V日韩精品 | 99在线热播精品免费99热| 亚洲欧洲一区二区| 成年人性生活免费视频| 成人午夜影视全部免费看| 亚洲春色在线视频| 成人在线免费观看| 久久免费视频一区| 亚洲人成电影青青在线播放| 国产免费拔擦拔擦8x| 免费人成网站在线观看不卡| 国产精品亚洲四区在线观看| 亚洲男人的天堂一区二区| 69免费视频大片| 一级成人毛片免费观看| 亚洲成在人线电影天堂色| 亚洲七七久久精品中文国产|