括号中各个pattern分别表示:
- 返回值匹配(ret-type-pattern)可以为*表示任何返回值,全路径的类名等
- 方法名匹配(name-pattern)可以指定方法名 或者 *代表所有, set* 代表以set开头的所有方法
- 参数匹配((param-pattern))可以指定具体的参数类型多个参数间用“,”隔开,各个参数也可以用“*”来表示匹配任意类型的参数如(String)表示匹配一个String参数的方法;(*,String) 表示匹配有兩个参数的方法,第一个参数可以是任意类型而第二个参数是String类型;可以用(..)表示零个或多个任意参数
- 其中后面跟着“?”的是可选项
然后偠使用所定义的Pointcut时,可以指定Pointcut签名
如下:
这种使用方式等同于以下方式直接定义execution表达式使用
还可以将一些公用的Pointcut放到一个类中,以供整個应用程序使用如下:
在使用上面定义Pointcut时,指定完整的类名加上Pointcut签名就可以了如: