1. AspectJ
1.1. AspectJ介绍
AspectJ官网^4
AspectJ文档^1
1.1.1. pointcuts
pointcuts指的是程序中的某些链接点(某些时机),例如call(void Point.setX(int))
表示:调用类Point
的setX(int)
方法时
pointcuts可以使用与或非表达式(||,&&,!
)连接,比如 call(void Point.setX(int)) || call(void Point.setY(int))
pointcuts可以被定义为变量,如下面代码中的move()
1 | pointcut move(): |
当然pointcuts定义的时候还可以使用通配符,比如call(void Figure.make*(..))
代表Figure
的以make开头且返回值为void的方法(不关心参数)调用的时候。比如call(public * Figure.* (..))
代表Figure
的任何方法(不关心方法名,参数,返回值)调用的时候。