切入点表达式
切入点确定连接点,从而使我们能够控制通知何时运行。 Spring AOP只支持Spring bean的方法执行连接点,因此可以将切入点看作是与Spring bean上的方法执行相匹配的。
表达式语法:execution([修饰符] 返回值类型 包名.类名.方法名(参数))execution(* com.aop.demo.Student.delete(..))
- 访问修饰符,可不写,可以匹配任何一个访问修饰符
- 第一个 * 表示返回值类型
- 包名、类名、方法名都可以用 * 表示,代表任何类名、方法名
- 参数,(..) 表示所有方法,()表示无参方法
常用的声明切入点的方式:
- 类中的delete方法
<aop:pointcut id="pointCut" expression="execution(* com.aop.demo.Student.delete(..))"/>
- 类中的delete方法
<aop:pointcut id="p1" expression="execution(* com.aop.demo.Student.delete())"/>
- 类中的所有无参方法
<aop:pointcut id="p2" expression="execution(* com.aop.demo.Student.*())"/>
- 类中的所有方法
<aop:pointcut id="p3" expression="execution(* com.aop.demo.Student.*(..))"/>
- demo包中的所有类中的所有方法
<aop:pointcut id="p4" expression="execution(* com.aop.demo.*.*(..))"/>
- 任何公共方法
<aop:pointcut id="p5" expression="execution(public * *(..))"/>
- 任何以set开头的方法
<aop:pointcut id="p6" expression="execution(* set*(..))"/>
- 任何方法
<aop:pointcut id="p7" expression="execution(* *(..))"/>