1.按類匹配:匹配到的Java類中全部方法作為目標連接點,使用within關鍵字。 匹配到某個類 <aop:pointcut expression="within(com.jnvc.ssm.aop.Singer)" id="singerPnt"/> 匹配到當前包下的所有類 <aop:pointcut ...
1.按類匹配:匹配到的Java類中全部方法作為目標連接點,使用within關鍵字。
- 匹配到某個類
<aop:pointcut expression="within(com.jnvc.ssm.aop.Singer)" id="singerPnt"/>
- 匹配到當前包下的所有類
<aop:pointcut expression="within(com.jnvc.ssm.aop.*)" id="singerPnt"/>
- 匹配到包下及子包下的類
<aop:pointcut expression="within(com.jnvc.ssm..*)" id="singerPnt"/>
2.按方法匹配:匹配到的方法作為目標連接點,使用execution關鍵字。
語法格式如下:
execution([許可權修飾符] 返回值類型 [類名] 方法名([參數類型列表]))
說明:[]括起來表示可以省略的部分,各部分都支持使用通配符 “*” 來匹配全部
參數類型列表支持以下兩種通配符:
- "*" :代表一個任意類型的參數;
- "..":代表零個或多個任意類型的參數。
點擊查看代碼
<aop:pointcut expression="execution(String com.jnvc.ssm.aop.Singer.song(String,String))" id="singerPnt"/>
- 任意返回類型
execution(* com.jnvc.ssm.aop.Singer.song(String))
- 任意返回類型下指定包下任意類
execution(* com.jnvc.ssm.aop.*.song(String))
- 任意返回類型下指定包下任意類任意方法
execution(* com.jnvc.ssm.aop.*.*(String))
- 任意返回類型下指定包或子包下任意類任意方法任意參數
execution(* test..*.*(..))