切入点表达式的语法:
- 关键字:execution(表达式)
- 表达式:
访问修饰符 返回值 包名.包名…类名.方法名(参数列表)
标准表达式
<aop:before
method="xx"
pointcut="execution(public void com.dawn.service.impl.AccountServiceImpl.saveAccount())" />
访问修饰符可以省略
<aop:before
method="xx"
pointcut="execution(void com.dawn.service.impl.AccountServiceImpl.saveAccount())" />
返回值可以使用通配符,表示任意返回值
<aop:before
method="xx"
pointcut="execution(* com.dawn.service.impl.AccountServiceImpl.saveAccount())" />
包名可以使用通配符,表示任意包,但是有几级包就需要写几个*
<aop:before
method="xx"
pointcut="execution(* *.*.*.AccountServiceImpl.saveAccount())" />
包名可以使用…代表当前包及其子包
<aop:before
method="xx"
pointcut="execution(* *..AccountServiceImpl.saveAccount())" />
类名和方法名都可以使用通配
<aop:before
method="xx"
pointcut="execution(* *..*.*())" />
参数列表
<!--
可以直接写数据类型:
基本类型直接写名称 int
* *..*.*(int)
引用类型写包名.类名的方式 java.lang.String
可以使用通配符表示任意类型,但必须有参数
* *..*.*(*)
可以使用..表示有无参数均可,有参数可以是任意类型
* *..*.*(..)
全通配写法:
* *..*.*(..)
-->
<aop:before
method="xx"
pointcut="execution(* *..*.*(..))" />