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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                在同一個切面中定義多個通知響應同一個切點函數,執行順序為聲明順序 ``` package com.zejian.spring.springAop.AspectJ; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; /** * Created by zejian on 2017/2/20. * Blog : http://blog.csdn.net/javazejian [原文地址,請尊重原創] */ @Aspect public class AspectOne { /** * Pointcut定義切點函數 */ @Pointcut("execution(* com.zejian.spring.springAop.dao.UserDao.deleteUser(..))") private void myPointcut(){} @Before("myPointcut()") public void beforeOne(){ System.out.println("前置通知....執行順序1"); } @Before("myPointcut()") public void beforeTwo(){ System.out.println("前置通知....執行順序2"); } @AfterReturning(value = "myPointcut()") public void AfterReturningThree(){ System.out.println("后置通知....執行順序3"); } @AfterReturning(value = "myPointcut()") public void AfterReturningFour(){ System.out.println("后置通知....執行順序4"); } } output====> 前置通知....執行順序1 前置通知....執行順序2 delete user...... 后置通知....執行順序3 后置通知....執行順序4 ``` 如果在不同的切面中定義多個通知響應同一個切點,進入時則優先級高的切面類中的通知函數優先執行,退出時則最后執行,如下定義AspectOne類和AspectTwo類并實現org.springframework.core.Ordered 接口,該接口用于控制切面類的優先級,同時重寫getOrder方法,定制返回值,返回值\(int 類型\)越小優先級越大。其中AspectOne返回值為0,AspectTwo的返回值為3,顯然AspectOne優先級高于AspectTwo ``` /** * Created by zejian on 2017/2/20. * Blog : http://blog.csdn.net/javazejian [原文地址,請尊重原創] */ @Aspect public class AspectOne implements Ordered { /** * Pointcut定義切點函數 */ @Pointcut("execution(* com.zejian.spring.springAop.dao.UserDao.deleteUser(..))") private void myPointcut(){} @Before("myPointcut()") public void beforeOne(){ System.out.println("前置通知..AspectOne..執行順序1"); } @Before("myPointcut()") public void beforeTwo(){ System.out.println("前置通知..AspectOne..執行順序2"); } @AfterReturning(value = "myPointcut()") public void AfterReturningThree(){ System.out.println("后置通知..AspectOne..執行順序3"); } @AfterReturning(value = "myPointcut()") public void AfterReturningFour(){ System.out.println("后置通知..AspectOne..執行順序4"); } /** * 定義優先級,值越低,優先級越高 * @return */ @Override public int getOrder() { return 0; } } //切面類 AspectTwo.java @Aspect public class AspectTwo implements Ordered { /** * Pointcut定義切點函數 */ @Pointcut("execution(* com.zejian.spring.springAop.dao.UserDao.deleteUser(..))") private void myPointcut(){} @Before("myPointcut()") public void beforeOne(){ System.out.println("前置通知....執行順序1--AspectTwo"); } @Before("myPointcut()") public void beforeTwo(){ System.out.println("前置通知....執行順序2--AspectTwo"); } @AfterReturning(value = "myPointcut()") public void AfterReturningThree(){ System.out.println("后置通知....執行順序3--AspectTwo"); } @AfterReturning(value = "myPointcut()") public void AfterReturningFour(){ System.out.println("后置通知....執行順序4--AspectTwo"); } /** * 定義優先級,值越低,優先級越高 * @return */ @Override public int getOrder() { return 2; } } output====> 前置通知..AspectOne..執行順序1 前置通知..AspectOne..執行順序2 前置通知....執行順序1--AspectTwo 前置通知....執行順序2--AspectTwo delete user ...... 后置通知....執行順序4--AspectTwo 后置通知....執行順序3--AspectTwo 后置通知..AspectOne..執行順序4 后置通知..AspectOne..執行順序3 ```
                  <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>

                              哎呀哎呀视频在线观看