在使用AOP時,指定一個pointcut的同時會定義一個expression,來表示對什麼方法使用AOP。
類似expression="execution(public * com.baidu.map.*Ctr.*Handle(…))"等
語法爲:execution(修飾符 返回值 包名.類名/接口名.方法名(參數列表))
其中:
1、返回類型、方法名、參數是必須有的.
2、表示任意值. 比如返回類型,方法名等.
3、(…)可以代表所有參數,()代表一個參數,(*,String)代表第一個參數爲任何值,第二個參數爲String類型.
舉例說明:
1、任意公共方法的執行:
execution(public * (…))
2、任何一個以“set”開始的方法的執行:
execution( set*(…))
3、AccountService 接口的任意方法的執行:
execution(* com.xyz.service.AccountService.(…))
4、定義在service包裏的任意方法的執行:
execution( com.xyz.service..(…))
5、定義在service包和所有子包裏的任意類的任意方法的執行:
execution(* com.xyz.service….(…))
6、定義在pointcutexp包和所有子包裏的JoinPointObjP2類的任意方法的執行:
execution(* com.test.spring.aop.pointcutexp…JoinPointObjP2.(…))")
最靠近(…)的爲方法名,靠近.(…))的爲類名或者接口名