1.格式:
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)throws-pattern?)
括号中各个pattern分别表示:
修饰符匹配(modifier-pattern?)
返回值匹配(ret-type-pattern)可以为 *
表示任何返回值,全路径的类名等
类路径匹配(declaring-type-pattern?)
方法名匹配(name-pattern)可以指定方法名 或者 *
代表所有, set* 代表以set开头的所有方法
参数匹配((param-pattern))可以指定具体的参数类型,多个参数间用“,”隔开,各个参数也可以用“”来表示匹配任意类型的参数,如(String)表示匹配一个String参数的方法;(,String) 表示匹配有两个参数的方法,第一个参数可以是任意类型,而第二个参数是String类型;可以用(…)表示零个或多个任意参数
异常类型匹配(throws-pattern?)
其中后面跟着“?”的是可选项
2.也就是这样表示:(看起来也好复杂)
execution([修饰符] (返回值) (类路径) (方法名) ((参数匹配)) 异常类型 ? )
3.把它可选项去除就成如图:()
具体详解
@Pointcut("execution(* com.fanlan.service.UesrserviceImpl.*(..))")
含义:表示在UesrserviceImpl类下的所有方法
execution(* *(..))
含义:表示匹配所有方法
execution(public * com.fanlan.service.UesrserviceImpl.*(..))
含义:表示匹配com.fanlan.service.UesrserviceImpl中所有的公有方法
execution(* com.fanlan.service..*.*(..))
含义:表示匹配com.fanlan.service包及其子包下的所有方法
execution(* com.fanlan.service.*.*(..))
含义:在指定包下的所有方法