Spring中AOP切入点表达式的写法

1.切入点表达式的写法

Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法
通常情况下,我们会对业务层所有的方法进行增强,那么如何写切入点表达式?

1.1 全通配写法:* .*(…)

全通配写法:* *..*.*(..)
Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法

1.2 访问修饰符可以省略

标准的表达式写法:
public void com.hh.service.AccountServiceImpl.saveAccount()
访问修饰符可以省略:
void com.hh.service.AccountServiceImpl.saveAccount()
Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法

1.3 返回值可以使用通配符,表示任意返回值

返回值可以使用通配符,表示任意返回值
* com.hh.service.AccountServiceImpl.saveAccount()
Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法

1.4 包名需要使用通配符,表示任意包,但是有几级包就需要写几个*

包名需要使用通配符,表示任意包,但是有几级包就需要写几个*
* *.*.*.AccountServiceImpl.saveAccount()
Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法

1.5 包名可以使用…表示当前包及其子包

包名可以使用…表示当前包及其子包:* *..AccountServiceImpl.saveAccount()
Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法

1.6 类名和方法名都可以使用*来实现通配

类名和方法名都可以使用*来实现通配:* *..*.*()
Spring中AOP切入点表达式的写法

1.7 参数列表

参数列表:
 可以直接写数据类型
  基本类型直接写名称 int
  引用类型写包名.类名的方式 java.lang.String
 可以使用通配符的方式表示任意类型,但是必须有参数
 可以使用…表示有无参数均可,有参数表示任意类型
  * *..*.*(int)
  * *..*.*(java.lang.String)
  * *..*.*(..)
Spring中AOP切入点表达式的写法
Spring中AOP切入点表达式的写法

7.8 实际开发中切入点表达式的写法

切到业务层实现类的所有方法:com.hh.service.AccountServiceImpl.*.*(..)
Spring中AOP切入点表达式的写法