PoinCut 切点表达式
PointCut 切点表达式用于指定路径,指定切面在哪些类,哪些方法上面起作用。
还记得上上节用到的 <aop:pointcut> 标签,其核心就是书写里面的 expression 表达式子。
<!-- pointcut 切点表达式: pubilc 访问修饰符, * 任意返回类型, .. 包通配符, *.* 任意类的任意方法, (..) 参数通配符 -->
<!-- 作用于 indi.chester 包下所有public类的运行 -->
<aop:pointcut id="pointcut" expression="execution(public * indi.chester..*.*(..))"/>
总结一下
书写PointCut切点表达式需要知道目标方法的完整路径格式:
访问修饰符 + 返回类型 + 包名 + 类名 + 方法名 + 参数列表
还需要知道三种类型的通配符:
.. 包通配符, 所有包
(..) 参数通配符,
* 其他通配符(访问修饰符, 返回类型,类名, 方法名)
假设要更改一下 pointcut 作用范围,需要在 indi.chester 包下所有public Service类的 有两个参数(第一个参数为String)的方法 运行, 则可以这样写:
<!-- 作用于 indi.chester 包下所有public Service类的 有两个参数(第一个参数为String)的方法 运行 -->
<aop:pointcut id="pointcut" expression="execution(public * indi.chester..*Service.*(String,..))"/>
Last updated