<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 概述 面向切面編程思想.把一些共性內容進行抽離,在需要使用的地方,以動態代理的方式插入,在不修改源碼的基礎上還能對源碼進行增強.spring就是把動態代理進行層層封裝,誕生出了AOP思想. ## AOP應用 1. 權限攔截. 2. 日志的輸出. 3. 事務管理. 4. 性能檢測. 5. .... ## 底層技術 1. JDK動態代理,不用導包,JDK提供好了. 2. CGLIB動態代理.第三方的,需要導包.相比JDK的動態代理,只要有目標類就可以增強(原理是對目標對象進行繼承代理.).如果目標代理被final修飾將不能被CGLIB代理. 如果目標類有接口,spring默認使用JDK動態代理.如果目標類沒有接口,spring使用CGLIB動態代理. ## 區別 1. JDK動態代理:代理對象和被代理對象不是繼承關系,只是實現了同一個接口,是兄弟關系. 2. CGLIB動態代理:代理對象和被代理對象是繼承關系,代理對象使用繼承增強被代理對象. ## AOP名詞 1. JoinPoint(連接點):目標對象中,所有可以增強的方法.spring只支持方法類型的連接點. 2. Ponitcut(切入點):目標對象中,已經增強的方法.就是被增強的代碼. 3. Advice(通知/增強): 增強的代碼. 4. Introduction(引介): 引介是一種特殊的通知,在不修改類代碼的前提下,引介可以在運行期為類動態的添加一些方法或字段. 5. Target(目標對象):被代理對象. 6. Weaving(織入):將通知應用到切入點的過程. 7. Proxy(代理):將通知織入到目標對象之后形成的代理對象. 8. aspect(切面):切入點 + 通知. ## 步驟 1. 4個基礎包+2個日志包+spring-aop.jar,spring-aspect.jar,com.springsource.org.aopalliance-1.0.0,com.springsource.org.aspectj.weaver-1.6.8.RELEASE. 2. 準備目標對象. 3. 準備通知. 4. 配置進行織入,將通知織入目標對象. ## 通知類型 1. 前置通知. 2. 后置通知. 3. 環繞通知. 4. 異常通知. 5. 最終通知(異常也調用).
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看