在使用Spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"
Spring支持9个@AspectJ切点表达式函数,分为4种:
- 方法切点函数:通过描述目标方法的信息定义连接点(execution())
- 方法入参切点函数:通过描述目标类方法入参的信息定义连接点
- 目标类切点函数:通过描述目标类类型的信息定义连接点
- 代理类切点函数:通过描述目标类的代理类的信息定义连接点
这里我们详细介绍了Excution表达式语法:
execution(<修饰符模式>? <返回类型模式><方法名模式> (<参数模式>))<异常模式>?)
除了返回类型模式,方法名模式和参数模式外,其他现象都是可选的
示例一:
execution(public * * (. .))
匹配所有目标类的public方法,第一个代表返回类型,第二个代表方法名,而. .代表任意入参方法
示例二:
execution( * To (. .))
匹配所有目标类以To为后缀的所有方法,第一个代表返回类型,而*To代表所有以To为后缀的方法
示例三:
execution(* com.aop.*(. .))
匹配com.aop包下所有类的所有方法
示例四:
execution(* com.msb.SpringXml.UserServiceImpl.add*(. .))
匹配com.msb.SpringXml.UserServiceImpl包下所有以add开头的方法