↓ 跳过正文

Spring AOP 切面

正能量 2 分钟阅读 更新于 2026-10-18

补充 Spring AOP execution 切点表达式的阅读顺序与代理调用边界。

Java 编程:原站配图。

Spring AOP 切面配图
在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"

例如定义切入点表达式 execution ( com.znle.service.impl...*(..))

execution()是最常用的切点函数,其语法如下所示:

整个表达式可以分为五个部分:

1、execution(): 表达式主体。

2、第一个*号:表示返回类型,*号表示所有的类型。

3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.znle.service.impl包、子孙包下所有类的方法。

4、第二个*号:表示类名,*号表示所有的类。

5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。

execution()是最常用的切点函数,其语法如下所示:

execution(<修饰符模式>? <返回类型模式> <方法名模式>(<参数模式>) <异常模式>?) 除了返回类型模式、方法名模式和参数模式外,其它项都是可选的。与其直接讲解该方法的使用规则,还不如通过一个个具体的例子进行理解。下面,我们给出各种使用execution()函数实例。

补充阅读
#

补充 Spring AOP execution 切点表达式的阅读顺序与代理调用边界。

如何理解与使用
#

从返回类型、包与类、方法名、参数逐段解释表达式,并拿一个希望命中的方法及一个不应命中的方法做对照。

验证与边界
#

切点匹配只是条件之一,还应确认对象由 Spring 管理、相关切面已启用、调用经过代理;看到注解或表达式并不等于该次调用一定被拦截。