Spring中的通配符

任意公共方法的执行:

execution(public * *(..))

任何一个以“set”开始的方法的执行:

execution(* set*(..))

AccountService 接口的任意方法的执行:

execution(* com.xyz.service.AccountService.*(..))

定义在service包里的任意方法的执行:

execution(* com.xyz.service.*.*(..))

定义在service包或者子包里的任意方法的执行:

execution(* com.xyz.service..*.*(..))

定义在service包里的任意连接点(在Spring AOP中只是方法执行):

within(com.xyz.service.*)

定义在service包或者子包里的任意连接点(在Spring AOP中只是方法执行):

within(com.xyz.service..*)

实现了 AccountService 接口的代理对象的任意连接点(在Spring AOP中只是方法执行):

this(com.xyz.service.AccountService)

实现了 AccountService 接口的目标对象的任意连接点(在Spring AOP中只是方法执行):

target(com.xyz.service.AccountService)

任何一个只接受一个参数,且在运行时传入的参数实现了 Serializable 接口的连接点 (在Spring AOP中只是方法执行) :

args(java.io.Serializable)

请注意在例子中给出的切入点不同于 execution( (java.io.Serializable)): args只有在动态运行时候传入参数是可序列化的(Serializable)才匹配,而execution 在传入参数的签名声明的类型实现了 Serializable 接口时候匹配。

有一个 @Transactional 注解的目标对象中的任意连接点(在Spring AOP中只是方法执行):

@target(org.springframework.transaction.annotation.Transactional)

任何一个目标对象声明的类型有一个 @Transactional 注解的连接点(在Spring AOP中只是方法执行):

@within(org.springframework.transaction.annotation.Transactional)

任何一个执行的方法有一个 @Transactional annotation的连接点(在Spring AOP中只是方法执行):

@annotation(org.springframework.transaction.annotation.Transactional)

任何一个接受一个参数,并且传入的参数在运行时的类型实现了@Classified annotation的连接点(在Spring AOP中只是方法执行):

@args(com.xyz.security.Classified)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,004评论 19 139
  • Spring学习手册(9)—— Spring AOP入门讲述了AOP技术以及AOP基本概念,最后我们了解了Spri...
    泽_渊阅读 1,819评论 2 3
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,325评论 6 342
  • 美好的夜晚一直是我喜欢的!原来最爱晚上安静的时间读读小说,记录自己有感悟的话语,有两个日记本是专门记录小说中的感悟...
    茹_6bf9阅读 195评论 0 3
  • 犹如差得百年难聚首 换拓黑字描你眸 犹如追得上古拾草香 也肯恨铁不成钢 2017年8月28日
    迦颜阅读 238评论 0 0

友情链接更多精彩内容