<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                > `AOP` * `AOP`將每一個方法調用,即**連接點**作為編程的入口,針對方法調用進行編程。從執行的邏輯上來看,相當于在之前縱向的按照時間軸執行的程序橫向切入。相當于將之前的程序橫向切割成若干的面,即`Aspect`.每個面被稱為**切面**。 * 因為切面本質上是每一個方法調用,選擇切面的過程實際上就是選擇方法的過程。那么,被選擇的**切面**(`Aspect`)在`AOP`術語里被稱為**切入點**(`Point Cut`). 切入點實際上也是從所有的**連接點**(`Join point`)挑選自己感興趣的連接點的過程。 * `Spring AOP`框架中通過 方法匹配表達式來表示**切入點**(`Point Cut`)。 ![](https://i.loli.net/2019/03/15/5c8b543c3a2b4.png) <br/> > ### 連接點 `Joinpoint` ``` public interface Joinpoint { /** 用于執行攔截器鏈中的下一個攔截器邏輯 */ Object proceed() throws Throwable; Object getThis(); AccessibleObject getStaticPart(); } ``` <br/> > ### 切點`Pointcut` ``` public interface Pointcut { /** 返回一個類型過濾器 */ ClassFilter getClassFilter(); /** 返回一個方法匹配器 */ MethodMatcher getMethodMatcher(); Pointcut TRUE = TruePointcut.INSTANCE; } ``` <br/> > ### 通知 `Advice` * 前置通知(Before advice)- 在目標方便調用前執行通知 * 后置通知(After advice)- 在目標方法完成后執行通知 * 返回通知(After returning advice)- 在目標方法執行成功后,調用通知 * 異常通知(After throwing advice)- 在目標方法拋出異常后,執行通知 * 環繞通知(Around advice)- 在目標方法調用前后均可執行自定義邏輯 <br/> > ### 切面 `Aspect` <br/> > ### 織入 `Weaving` <br/> <br/> *** 參考: [《Spring設計思想》AOP設計基本原理](https://blog.csdn.net/luanlouis/article/details/51095702) [Spring-AOP-源碼分析系列文章導讀](http://www.tianxiaobo.com/2018/06/17/Spring-AOP-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0%E5%AF%BC%E8%AF%BB/)
                  <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>

                              哎呀哎呀视频在线观看