常见问题之Java——AOP中常用的切入点表达式
常见问题之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方法生效,*表示里面不管任何返回值的均包括。