AspectJ切点表达式

2018-07-05  本文已影响0人  changhr2013

@AspectJ 支持三种通配符

* 匹配任意字符,只匹配一个元素

.. 匹配任意字符,可以匹配多个元素 ,在表示类时,必须和 * 联合使用

+ 表示按照类型匹配指定类的所有类,必须跟在类名后面,如 com.cad.Car+ ,表示继承该类的所有子类包括本身

逻辑运算符

切点表达式由切点函数组成,切点函数之间还可以进行逻辑运算,组成复合切点。

Spring 支持 9 个 @AspectJ 切点表达式函数,它们用不同的方式描述目标类的连接点。我们来了解几个常用的

execution()

execution() 是最常用的切点函数,用来匹配方法

语法:
execution(<修饰符><返回类型><包.类.方法(参数)><异常>) 
修饰符和异常可以省略。
使用例子

args()

args()函数接受一个类名,表示目标类方法参数是指定类时(包含子类),则匹配切点。

args(com.cad.User) :匹配 addUser(User user) 方法等

within()

匹配类

语法:
within(<类>)

within(com.cad.User) :匹配 User 类下的所有方法

target()

target()函数通过判断目标类是否按类型匹配指定类决定连接点是否匹配。

target(com.cad.User) :如果目标类类型是 User 类那么目标类所有方法都匹配切点。

this()

this()函数判断代理对象的类是否按类型匹配指定类。

上一篇 下一篇

猜你喜欢

热点阅读