前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见问题之Java——AOP中常用的切入点表达式

常见问题之Java——AOP中常用的切入点表达式

作者头像
cn華少
发布2022-01-11 14:45:02
1990
发布2022-01-11 14:45:02
举报
文章被收录于专栏:IT综合技术分享IT综合技术分享

常见问题之Java——AOP中常用的切入点表达式

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。

同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:windows10
  • JDK:openjdk11
  • 开发工具:IDEA 教育版
  • 框架:SpringBoot
  • 包管理:Gradle

内容

上一篇,我们提到了AOP的基础概念(知识分享之Java——AOP中执行顺序),这一篇我们整理一下常用的切入点表达式。

关键词:execution 用于匹配子表达式

格式 @注解("execution(可见性返回类型声明类型.方法名(参数)异常")

这其中常用注解包括以下几种:

@Aspect、@Component、@Pointcut、@Before、@AfterReturning

而表达式的格式构成主要有以下这些:

    • 这个符号表示匹配所有的。
    • 这个表示类和子类
  • ... 这个表示多个包,比如core包下面的所有:com.demo.core...
  • && 这个表示并且
  • || 这个表示或者
  • ! 这个表示非 例如常见的表达式有: execution(* com.demo.core.controller.indexController.index(..)) 表示com.demo.core.controller包下的indexController类中的index方法生效,*表示里面不管任何返回值的均包括。

而execution这个关键词其实也有很多种

  • execution 如上,根据表达式进行匹配
  • within 用于匹配连接点所在的Java类或包
  • this 用于匹配通知方法中传入代理对象的引用
  • target 用于向通知方法中传入目标对象的引用
  • args 用于将参数传入到通知方法中
  • @within 用于匹配在类一级使用了参数确定的注解的类,其所有方法都将被匹配
  • @target 和@within的功能类似,但必须要指定注解接口的保留策略为RUNTIME。
  • @args 传入连接点的对象对应的Java类必须被@args指定的Annotation注解标注。
  • @annotation 匹配连接点被它参数指定的Annotation注解的方法。也就是说,所有被指定注解标注的方法都将匹配。
  • bean 通过受管Bean的名字来限定连接点所在的Bean。该关键词是Spring2.5新增的
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021.09.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常见问题之Java——AOP中常用的切入点表达式
  • 背景
  • 开发环境
  • 内容
    • 这其中常用注解包括以下几种:
      • 而表达式的格式构成主要有以下这些:
        • 而execution这个关键词其实也有很多种
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档