<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring的AOP

      代理模式【結構型模式】:

      • 作用,什么時候使用:

        1. 當一個對象需要保護的時候【保護對象】;
        2. 需要給對象的功能增強;
        3. 對象之間無法直接交互的時候;
      • 角色【使用著無法察覺代理過程】:

        • 目標對象;
        • 代理對象;
        • 目標對象和代理對象的公共接口【共同點】;
      • 靜態代理:

        • 統計方法解決辦法:

          1. 直接修改源代碼,設計統計時間【違背OCP】;

          2. 使用子類繼承,統計時間【子類和父類,耦合度高】;

            類與類的關系:

            • 泛化【is a】和關聯【has a】關系
          3. 靜態代理模式;

            • 通過公共接口傳遞對象【降低耦合度】;
            • 靜態代理,一個對對象對應一個代理對象【類膨脹,不好維護】;
      • 動態代理:

        • 動態的生成技術:在內存中動態生成代理類【運行階段】;
        • JDK動態代理類【基于接口代理】;
        • CGLIB動態代理【基于繼承代理,可以代理接口和類,不能代理final類,原理和繼承的一致】;
        • javassist動態代理;
      • JDK基于接口的動態代理;

        OrderSerice proxyObj = (OrderSerice)Proxy.newProxyInstance(orderSericeImpl.getClass().getClassLoader(),           orderSericeImpl.getClass().getInterfaces(),
                        new TimerInvocationHandler());
        
        • 參數1:代理對象的類加載器,在內存中生成的class文件,也要又類加載器進行加載到jvm中;
        • 參數2:代理對象和代理共有的接口;
        • 參數3:調用處理器接口實例化對象【實現增強的代碼邏輯,結構】,僅當代理調用代理方法的時候,會在底層調用invoke方法;
      • 基于CGlib的代理,功能更強;

        • 類的class對象,方法攔截接口的實現實例化,創建代理對象
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(OrderSericeImpl.class);
        enhancer.setCallback(new TimerMethodInterceptor());
        OrderSericeImpl cjlibProxy =(OrderSericeImpl)enhancer.create();
        cjlibProxy.detail();
        
      • AOP,面向切面編程【編程思想,編程技術 】;

        • 固定不變的,和業務邏輯無關的交叉業務

        • 豎向業務核心,橫向是交叉業務【日志,安全,事務等】;

        • 將交叉業務提取出來,形成橫向的切面;

        • AOP思想:將與核心業務模塊無關的代碼獨立抽取出來,形成一個組件,然后以橫向的方法應用到業務流程中去;

          • 代碼復用強;
          • 可維護;
          • 更好的關注業務邏輯;
        • Spring中的AOP是使用動態代理:JDK和CGLIB動態代理技術,如果是使用接口代理,默認使用JDK,如果類沒有實現接口則會切換為CGLIB:

        • AOP術語:

          • 連接點【JoinPoint】:可能織入切面的位置【位置】;

          • 切點【PointCut】:類中真正織入的方法【方法】;

          • 通知【Advice】:通知又叫增強,是具體增強的代碼【代碼】;

            • 根據增強放在連接點的位置有:前置,后置,環繞,異常,最終
          • 切面:切點 + 通知就是切面【等效實現處理器接口對象】;

          • 織入:把通知應用到目標對象上的過程【動作】;

          • 代理對象;

          • 目標對象;

          • 切點表達式:匹配切點;

            execution([訪問修飾符]返回值類型[全限定類名]方法名(形式參數列表)[異常])
            
            • 返回值類型:*,返回任意類型;
            • 全限定類名:..,代表當前包及其子包下所有類,省略時,所有類;
            • 方法名:*,所有方法,set*,表示所有set方法;
            • 參數方法:..,參數類型和個數任意,*只有一個參數方法,(*,String),第一個參數隨意;
      • Spring的AOP實現:

        • Spring + AspectJ:基于注解,
          • 切面順序:@Order(number),數字越小,優先級越高;
        • Spring + AspectJ:基于xml;
        • Spring自己實現AOP,基于xml配置【舍】;
        • 事務:注解式,和聲明式;
        • 安全日志;
      • Spring的事務,在AOP的基礎上再進行封裝【二次封裝】;

        • 編程式事務;
        • 聲明式事務
          • 基于注解
          • 基于xml配置;
          • 事務的屬性:
            • Propagation:傳播特性【兩個方法的事務】
              • Requiered:有就加入,沒有就新建事務【默認】;
              • Supportts:有就加入,沒有就不管了;
              • Mandatory:有就加入,沒有就拋異常;
              • Requied_new:不管有沒有,開啟新事務【不存在嵌套關系,獨立】;
              • Not_supported:不支持事務,已有的,掛起;
              • Never:不支持事務,有就拋異常;
              • Nested:有事務就嵌套,沒有就新建;
            • 事務的關系【串行關系】,決定了事務的回滾和提交;
            • 事務的隔離【并行關系】,決定事務的并發關系;
              • 臟讀【讀到未提交事務中的數據】,可不重復讀【在同一個事務中,每次讀的數據不一樣【數據修改】】,幻讀【同一個事務中,每次讀取的數據量不一樣】
            • 事務超時【秒為單位】:
              • 超過時間后,事務中的DML語句沒有執行完畢的話,會執行回滾。
                • 時間是:到最后一條DML語句執行之后的時間。
                • 最后一條DML語句后的業務邏輯,不算有效時間;
            • 只讀事務:【沒有增刪改,只有slect】;
              • 啟動spring的優化策略,提高select的執行效率;
            • 設置選擇性異常回滾;
      posted @ 2025-06-03 20:11  煙雨斷橋  閱讀(17)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 韩国午夜福利片在线观看| 色成人精品免费视频| 国内精品自线在拍| 国产精品香港三级国产av| 婷婷六月色| 精品国产乱一区二区三区| 国产精品女同一区三区五区| 欧洲精品色在线观看| 久久亚洲精品11p| 最新国产精品好看的精品| 国产无套粉嫩白浆在线| 国产呦交精品免费视频| 激情亚洲内射一区二区三区| 国产成人午夜在线视频极速观看| 亚洲欧美偷国产日韩| 国产色一区二区三区四区| 伊人久久精品一区二区三区| 婷婷久久香蕉五月综合加勒比 | 女人被狂躁到高潮视频免费软件| 俄罗斯美女真人性做爰| 国产亚洲中文字幕久久网| 国产亚洲999精品AA片在线爽| 免费观看欧美猛交视频黑人| 91色老久久精品偷偷蜜臀| 国产91精品调教在线播放| 国产农村激情免费专区| 国产成人av一区二区三| 人妻聚色窝窝人体WWW一区| 成人午夜视频一区二区无码| 九九热在线精品视频首页| 久久精品国产99精品国产2021| 国产视频 视频一区二区| 老太脱裤子让老头玩xxxxx| 四虎影视永久在线精品| 四虎成人精品国产永久免费| 国产精品区一区第一页| 亚洲日韩欧洲乱码av夜夜摸| 精品一区二区三区免费视频| 男女激情一区二区三区| 民县| 蜜桃视频一区二区三区四|