aop中execution 表達式


學習Spring中的aop組裝切面時遇到的execution表達式,下面是execution表達式的詳解

切入點表達式:execution(* 包名.*.*(..))

整個表達式可以分為五個部分:

1、execution(): 表達式主體。

2、第一個*號:方法返回類型, *號表示所有的類型。

3、包名:表示需要攔截的包名。

4、第二個*號:表示類名,*號表示所有的類。

5、*(..):最后這個星號表示方法名,*號表示所有的方法,后面( )里面表示方法的參數,兩個句點表示任何參數

其中除了返回類型模式、方法名模式和參數模式外,其它項都是可選的。

 舉例:

execution(public * *(..))     匹配所有的public修飾符的方法

execution(* set*(..))  匹配所有”set”開頭的方法:

execution(* com.xyz.service.AccountService.*(..))  匹配AccountService 接口/類的所有方法:

 

execution(* joke(String,int)) 
匹 配joke(String,int)方法,且joke()方法的第一個入參是String,第二個入參是int。如果方法中的入參類型是Java.lang包下的類,可以直接使用類名,否則必須使用全限定類名,如joke(java.util.List,int);

 

 

execution(* joke(String,*))
匹 配目標類中的joke()方法,該方法第一個入參為String,第二個入參可以是任意類型,如joke(Strings1,String s2)和joke(String s1,double d2)都匹配,但joke(String s1,doubled2,String s3)則不匹配;

 

 

execution(* joke(String,..))
匹配目標類中的joke()方法,該方法第 一個入參為String,后面可以有任意個入參且入參類型不限,如joke(Strings1)、joke(String s1,String s2)和joke(String s1,double d2,Strings3)都匹配。

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM