Spring AOP中pointcut expression表达式解析 及匹配多个条件

Spring AOP中pointcut expression表达式解析 及匹配多个条件

任意公共方法的执行:
  execution(public * (..))
任何一个以“set”开始的方法的执行:
  execution(
set(..))
AccountService 接口的任意方法的执行:
  execution(
com.xyz.service.AccountService.(..))
定义在service包里的任意方法的执行:
  execution(
com.xyz.service..(..))
定义在service包和所有子包里的任意类的任意方法的执行:
  execution(* com.xyz.service...(..))
定义在pointcutexp包和所有子包里的JoinPointObjP2类的任意方法的执行:
  execution(* com.test.spring.aop.pointcutexp..JoinPointObjP2.*(..))")
在多个表达式之间使用 ||,or表示 或,使用 &&,and表示 与,!表示 非.例如:

@Pointcut("@within(org.springframework.stereotype.Controller) || @within(org.springframework.web.bind.annotation.RestController)")

execution 用于匹配方法执行的连接点;
@within :使用 “@within(注解类型)” 匹配所以持有指定注解类型内的方法;注解类型也必须是全限定类型名;
@annotation :使用 “@annotation(注解类型)” 匹配当前执行方法持有指定注解的方法;注解类型也必须是全限定类型名;
@args 任何一个只接受一个参数的方法,且方法运行时传入的参数持有注解动态切入点,类似于 arg 指示符;
@target 任何目标对象持有 Secure 注解的类方法;必须是在目标对象上声明这个注解,在接口上声明的对它不起作用
@args :使用 “@args( 注解列表 )” 匹配当前执行的方法传入的参数持有指定注解的执行;注解类型也必须是全限定类型名;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • Via http://jinnianshilongnian.iteye.com/blog/1415606 http...
    xiaobinZh阅读 1,576评论 0 52
  • Spring AOP支持的AspectJ切入点指示符 Spring AOP支持的AspectJ切入点指示符如下: ...
    幽暗金阅读 3,203评论 0 2
  • 不知道从什么时候开始 再也遇不到看一眼就心花怒放的人 甚至很难去喜欢上一个人 仿佛喜欢变成了适合这两个字 条条框框...
    白羊座rabbit阅读 239评论 0 0
  • 腊梅迎新一树黄,游人赏景不畏凉。 竹柳隔岸遥相望,檐下人家为谁忙?
    张纪敏阅读 198评论 0 0