
例如定义切入点表达式 execution ( com.znle.service.impl...*(..))
execution()是最常用的切点函数,其语法如下所示:
整个表达式可以分为五个部分:
1、execution(): 表达式主体。
2、第一个*号:表示返回类型,*号表示所有的类型。
3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.znle.service.impl包、子孙包下所有类的方法。
4、第二个*号:表示类名,*号表示所有的类。
5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。
execution()是最常用的切点函数,其语法如下所示:
execution(<修饰符模式>? <返回类型模式> <方法名模式>(<参数模式>) <异常模式>?) 除了返回类型模式、方法名模式和参数模式外,其它项都是可选的。与其直接讲解该方法的使用规则,还不如通过一个个具体的例子进行理解。下面,我们给出各种使用execution()函数实例。
补充阅读#
补充 Spring AOP execution 切点表达式的阅读顺序与代理调用边界。
如何理解与使用#
从返回类型、包与类、方法名、参数逐段解释表达式,并拿一个希望命中的方法及一个不应命中的方法做对照。
验证与边界#
切点匹配只是条件之一,还应确认对象由 Spring 管理、相关切面已启用、调用经过代理;看到注解或表达式并不等于该次调用一定被拦截。
