<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 胡鵬 閱讀(340) 評論(0)  編輯  收藏 所屬分類: spring


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


    網站導航:
     

    導航

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

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    agile

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本一线a视频免费观看| 99久久免费中文字幕精品| 毛片免费视频播放| 亚洲小说图片视频| 59pao成国产成视频永久免费 | 日韩精品免费一级视频| 久久夜色精品国产亚洲AV动态图| 日本高清免费观看| 亚洲国产精品无码久久SM| 成人免费区一区二区三区| 亚洲成在人线av| 日本一卡精品视频免费| 亚洲熟妇色自偷自拍另类| 免费无码精品黄AV电影| 亚洲av无码专区国产不乱码| 亚洲国产精品成人一区| 国产va免费精品| 亚洲天堂中文字幕| 18禁免费无码无遮挡不卡网站| 亚洲色图激情文学| 四虎影视永久免费视频观看| 精精国产www视频在线观看免费| 国产AV无码专区亚洲AVJULIA| 99热在线观看免费| 亚洲综合一区国产精品| 亚洲高清免费视频| 国产成人免费视频| 亚洲日韩久久综合中文字幕| 亚洲精品麻豆av| 欧洲精品99毛片免费高清观看| 亚洲人成人网毛片在线播放| 亚洲高清最新av网站| 久久精品视频免费看| 亚洲国产精品无码观看久久| 国产亚洲精品精品国产亚洲综合| 亚洲免费观看在线视频| 成人亚洲国产精品久久| 亚洲成AV人在线播放无码| 最近免费中文字幕视频高清在线看| 又大又硬又粗又黄的视频免费看 | 四虎免费永久在线播放|