AspectJ通配符:
1、× 一个元素
2、.. 多个元素
3、 +类的类型,必须跟在类后面。
AspectJ切点函数:
execution(修饰符 返回类型 方法名(参数类型)异常类型)
execution(* *(..))???????????????????????????????? 任意一个返回类型,任意一个方法名(多个参数)
execution(public * *(..))????????????????????????? Public修饰符 任意一个返回类型,任意一个方法名(多个参数)
方法签名
例子1:
execution(* *Get*(..))???????????????????????????? userGet(..)??? testGet(..)? demoGetList(..)
类定义:
execution(* com.longzhun.UserManager.*(..))??????? com.longzhun包下的UserManager类或接口中的所有方法都会被拦截????
execution(* com.longzhun.UserManager+.*(..))?????? com.longzhun包下的UserManager类或接口中的所有方法以及子类,实现类的所有方法都会被拦截????
?
包:
execution(* com.longzhun.*(..))???????????????????? com.longzhun包下的所有方法都会被拦截
execution(* com.longzhun..*(..))??????????????????? com.longzhun包下以及子包下的所有方法都会被拦截 如:com.longzhun.manager
execution(* com.longzhun..*.*Service.save*(..))???? com.longzhun包下以及子包下以Service结尾的所有类或接口中的以save开始的所有方法都会被拦截
???????UserService? DemoService? save*? saveUser saveDemo
参数:
execution(* com.longzhun.save*(String))
execution(* com.longzhun.save*(String,*))
execution(* com.longzhun.save*(String,..))
execution(* com.longzhun.save*(Object+))???
execution(* com.longzhun.save*(Object)) *
execution(* com.longzhun.save*(java.util.List))
java.lang.*
?
?