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

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

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

    spring中的AOP

    Spring 對AOP的支持(采用Annotation的方式)

     

    1.       spring依賴庫

    *SPRING_HOME/dist/spring.jar

    *SPRING_HOME/lib/Jakarta-commons/commons-logging.jar

    *SPRING_HOME/lib/log4j/log4j-1.2.14.jar

    *SPRING_HOME/lib/aspectj/*.jar

    2.       采用Aspect定義切面

    3.       在Aspect定義Pointcut和Advice

    4.       啟用AspectJ對Annotation的支持并且將Aspect類和目標對象配置到Ioc容器中



    注意:在這種方法定義中,切入點的方法是不被執行的,它存在的目的僅僅是為了重用切入點  即Advice中通過方法名引用這個切入點

     

     

    AOP:

         Cross cutting concern

          Aspect

          Advice

          Pointcut

          Joinpoint

          Weave

         Target Object

          Proxy

         Introduction

     

     

    Spring 對AOP的支持(采用配置文件的方式)

     

    1.spring依賴庫

    *SPRING_HOME/dist/spring.jar

    *SPRING_HOME/lib/Jakarta-commons/commons-logging.jar

    *SPRING_HOME/lib/log4j/log4j-1.2.14.jar

    *SPRING_HOME/lib/aspectj/*.jar

     

    2.配置如下:

    <aop:config>

        <aop:aspect id="security" ref="securityHandler">

            <aop:pointcut id="allAddMethod" expression="execution(* com.lsb.spring.UserManagerImpl.add*(..))"/>

            <aop:before method="checkSecurity" pointcut-ref="allAddMethod" />

        </aop:aspect>

        </aop:config>

     

     

     

    Spring 對AOP的支持(JoinPoint參數介紹)

     

    Aspect默認情況不用實現接口,但對于目標對象(UserManagerImpl.java),在默認情況下必須實現接口, 如果沒有實現接口必須引入CGLIB庫

     

    我們可以通過Advice中添加一個JoinPoint參數,這個值會由spring自動傳入,從JoinPoint中可以取得參數值、方法名等等

     

     

     

    Spring 對AOP的支持

     

    1.       如果目標對象實現了接口,默認情況下會采用JDK的動態代理實現AOP

    2.       如果目標對象實現了接口,可以強制使用CGLIB實現AOP

    3.       如果目標對象沒有實現了接口,必須采用CGLIB庫,spring會在JDK動態代理和CGLIB之間轉換

    4.        

     

    如何強制使用CGLIB實現AOP?

    *添加CGLIB庫,SPRING_HOME/lib/cglib/*.jar

    *在spring配置文件中加入<aop:aspectj-autoproxy proxy-target-class="true"/>

     

    JDK動態代理和CGLIB字節碼生成的區別?

           *JDK動態代理只能對實現了接口的類生成代理,而不能針對類

           *CGLIB是針對類實現代理,主要是對指定的類生成一個子類,覆蓋其中的方法,因為是繼承,所以該類最好不要申明成final

     


    posted on 2009-04-06 12:07 胡鵬 閱讀(342) 評論(0)  編輯  收藏 所屬分類: spring


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


    網站導航:
     

    導航

    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    agile

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99久久人妻精品免费一区| caoporm超免费公开视频| 亚洲精品在线免费观看| 久久国产精品亚洲综合| 猫咪www免费人成网站| 日韩a级毛片免费观看| 亚洲国产精品无码中文lv| 国内大片在线免费看| 97在线免费视频| 久久亚洲国产成人精品无码区| 二级毛片免费观看全程| mm1313亚洲精品无码又大又粗| 免费观看又污又黄在线观看| 亚洲免费视频一区二区三区| 国产精品高清免费网站| 亚洲人成网77777亚洲色| 免费日本一区二区| 亚洲国产成a人v在线| 免费无码又爽又刺激高潮的视频| 亚洲色大成网站www永久网站| 国产片免费福利片永久| 特级毛片全部免费播放| 亚洲乱码精品久久久久..| 精品无码无人网站免费视频| 亚洲乱码卡三乱码新区| 免费看的黄色大片| 国产成人1024精品免费| 亚洲一区二区三区首页| 青苹果乐园免费高清在线| 高潮毛片无遮挡高清免费| 国产亚洲高清不卡在线观看| 4hu四虎最新免费地址| 亚洲av无码专区在线电影| 久久久久久A亚洲欧洲AV冫| 2021在线永久免费视频| 亚洲AV无码一区二区三区性色 | 国产免费久久久久久无码| 亚洲av中文无码乱人伦在线播放| 精品免费久久久久久久| 老司机福利在线免费观看| 亚洲成色在线综合网站|