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

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

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

    posts - 8, comments - 13, trackbacks - 0, articles - 43
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    AOP學習筆記二:AOP實現策略

    Posted on 2009-08-08 22:01 kangaroo 閱讀(286) 評論(0)  編輯  收藏
    用于實現AOP技術的主要策略,按照功能由弱到強排列:
    -J2SE動態代理
    -動態字節碼生成
    -java代碼生成
    -使用定制的類加載期
    -語言擴展

    1.J2SE動態代理
    動態代理是一種強大的語言結構,它使我們可以為一個或多個接口“憑空”地創建實現對象,而不需要預先有一個實現類。
    動態代理最大的好處在于:這是一種標準的Java語言特性。除了AOP框架之外不需要第三方庫,也不回受到應用程序的任何影響。
    動態代理的最大局限性在于:它只能針對接口進行代理,不能針對類。一般情況下,這種限制不是壞事,因為AOP主要針對業務對象,而業務對象通常是放在業務接口之后。
    動態代理在java1.4和更高的版本性能表現地相對好,不過,一旦使用動態代理的實習策略,便不可避免地招致反射調用的開銷。

    2.動態字節碼生成
    為了針對Java類提供代理,我們需要動態代理之外的工具,就是動態字節碼生成。應該慶幸,Java的反射和類裝載機制都非常開發,因此實現動態字節碼生成庫并不復雜。
    在這方面,最流行的工具就是CGLIB(Code Generation Library)。在spring中,如果需要針對類(而不是接口)提供代理,就會用到CGLIB。它可以針對制定的類動態生成一個子類,并覆蓋其中的方法,從而實現方法的攔截。CGLIB風格的字節碼增強并應用在Hibernate2.X版本中,并被證明是一種成熟的技術。Hibernate的成功表明,在應用服務器環境下CGLIB沒有給最終用戶帶來任何困擾。
    不過CGLIB有個小問題就是,因為它是通過生成類的子類來實現代理的,所以無法為final方法提供代理。

    3.java代碼生成
    逐漸退出流行。

    4.使用定制的類加載器

    5.語言擴展
    AspectJ就對java進行了擴展,將AOP概念作為一等公民來對待。


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


    網站導航:
     
    主站蜘蛛池模板: **一级一级毛片免费观看| 污视频网站在线观看免费| 日本免费中文字幕| 亚洲区小说区图片区QVOD| 国产高潮流白浆喷水免费A片 | 无码国产亚洲日韩国精品视频一区二区三区 | 青草久久精品亚洲综合专区| 国产区卡一卡二卡三乱码免费| 小说区亚洲自拍另类| 亚洲乱码国产一区网址| 最近免费中文字幕中文高清| 亚洲va中文字幕无码久久| 久久永久免费人妻精品下载| 亚洲第一精品电影网| 成年女人免费视频播放77777| 欧洲亚洲国产精华液| 亚洲日韩中文字幕日韩在线| 国内精品免费久久影院| 91亚洲国产成人精品下载| 国产成人无码免费看视频软件| 亚洲日韩亚洲另类激情文学| 亚洲AV中文无码乱人伦在线视色| 两个人的视频www免费| 337p日本欧洲亚洲大胆色噜噜 | 亚洲国产午夜中文字幕精品黄网站 | 国产亚洲Av综合人人澡精品| 亚洲国产成人精品女人久久久 | 69xx免费观看视频| 亚洲精品女同中文字幕| 亚洲午夜精品久久久久久浪潮| 久草免费福利视频| 亚洲永久网址在线观看| 久久久久亚洲精品无码网址 | 中国人免费观看高清在线观看二区| 久久青青草原亚洲av无码app| 人禽杂交18禁网站免费| 久久成人永久免费播放| 亚洲va在线va天堂va手机| 亚洲综合色区在线观看| 成人免费一级毛片在线播放视频| 一级黄色毛片免费看|