1. 权限修饰符和返回类型:
- 在切点表达式中,可以省略权限修饰符(如public),这表示不限定方法的访问权限。
- 使用*作为返回类型表示匹配任意返回类型的方法。
2. 包和类的匹配:
- * com.qf.service.*.*Impl.*();:这个表达式匹配com.qf.service包下任意直接子包中,类名以Impl结尾的类的任意方法。这里的*代表直接子包的名称,不包括com.qf.service包本身或更深层次的子包。
- * com.qf.service..*Impl.*();:与上面的表达式相比,这里使用了两个点..,表示匹配com.qf.service包及其任意层级的子包中,类名以Impl结尾的类的任意方法。这种方式不限制包的层级深度,既包括com.qf.service包本身,也包括所有子包。
3. 方法的匹配:
- .*();表示匹配类中的任意方法,()表示方法可以没有参数。使用(..)则表示匹配任意参数列表的方法。