Spring中AOP切入點表達式

1.within表達式

通過類名進行匹配 ,粗粒度的切入點表達式,最多控制到類級別

語法:within(包名.類名)

如下配置後類中的所有的連接點都會被表達式識別,成爲切入點

在within表達式中可以使用*號匹配符,匹配指定包下所有的類,注意,只匹配當前包,不包括當前包的子孫包。

 

在within表達式中也可以用*號匹配符,匹配包

在within表達式中也可以用..*號匹配符,匹配指定包下及其子孫包下的所有的類

2.execution()表達式

細粒度的切入點表達式,可以以方法爲單位定義切入點規則(細粒度表達式 --常用,execution可以實現within的所有功能)

 語法:execution(返回值類型 包名.類名.方法名(參數類型,參數類型…))

2.1該切入點規則表示,切出指定包下指定類下指定名稱指定參數指定返回值的方法。

<aop:pointcut expression=

"execution(void cn.wyy.service.UserServiceImpl.addUser(java.lang.String))" id="pc1"/>

2.2該切入點規則表示,切出指定包下所有的類中的query方法,要求無參,但返回值類型不限

<aop:pointcut expression="execution(* cn.wyy.service.*.query())" id="pc1"/>

 2.3該切入點規則表示,切出指定包及其子孫包下所有的類中的query方法,要求無參,但返回值類型不限

<aop:pointcut expression="execution(* cn.wyy.service..*.query())" id="pc1"/>

2.4該切入點規則表示,切出指定包及其子孫包下所有的類中的query方法,要求參數爲int java.langString類型,但返回值類型不限

 <aop:pointcut expression="execution(* cn.wyy.service..*.query(int,java.lang.String))" id="pc1"/>

2.5該切入點規則表示,切出指定包及其子孫包下所有的類中的query方法,參數數量及類型不限,返回值類型不限

<aop:pointcut expression="execution(* cn.wyy.service..*.query(..))" id="pc1"/>

2.6該切入點規則表示,切出指定包及其子孫包下所有的類中的任意方法,參數數量及類型不限,返回值類型不限。這種寫法等價於within表達式的功

<aop:pointcut expression="execution(* cn.wyy.service..*.*(..))" id="pc1"/>

 2.7該切入點規則表示,切出指定包及其子孫包下所有的類中的任意方法,參數數量及類型不限,返回值類型不限。這種寫法等價於within表達式的功能

 <aop:pointcut expression="execution(* cn.wyy.service..*(..))" id="pc1"/>

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章