以下是AspectJ中的三个通配符:
1)* 表示匹配任意数量的字符,除了句号(.)
2).. 表示比配包含句号在内的任意数量的字符。
3)+ 表示比配任意给定的类型的子类和子接口。
例:
*Account
匹配以Account结尾的类型名,例如SavingsAccout和CheckingAccount
java.*.Data
匹配java包下的直接子包下的Data类型,例如java.util.Data和java.sql.Data(注:但不能是java.a.b.Data, 因为*不能包含句号嘛)
java..*
匹配java包下任意类型或者其所有直接子包,例如java.awt和java.util,也可匹配其非直接子包,例如java.awt.event和java.util.logging
4. 请注意在method signatures中,通配符..被用于表示匹配包含任意类型和任意数量的参数的方法。
例:
*java.io.Reader.read(char[],.. )
Reader类中的任何read()方法,无论参数是什么类型,数量如何,只要其首参数是char[]类型,就可以匹配。这种情况下,它可以匹配read(char[]),也可以匹配read(char[], int, int),但不能匹配read()。
5.The execution join point is on the method body itself.
执行类型的join point是方法体本身。