3.8 @Pointcut的表达式-execution

戴着假发的程序员出品  抖音ID:戴着假发的程序员  欢迎关注

[查看视频教程]

上一章我们讲解@Pointcut的含义和用法,这一章我将详细讲解和罗列spring中的@Pointcut中表达式的写法。

Spring AOP 支持以下 AspectJ 切入点指示符(PCD)用于切入点表达式:

用于匹配方法执行连接点。这是使用 Spring AOP 时使用的主要切入点指示符。这种方式是我们最常用的方式,是通过类似于正则表达式的方式实现pointcut的配置。

*表示通配符, 方法中没有参数就表示匹配没有参数的方法saveBook() ,一个点就表示匹配有一个参数的方法saveBook(.),方法中两个点表示匹配任意参数的方法saveBook(..)。 方法中saveBook(.,String) 表示匹配第一个任意参数,第二个是String类型参数的方法。

我们来看spring官方给出的案例:

执行任何公共方法:

执行任何公共方法:

execution(public * *(..))

执行 name 以set开头的任何方法:

execution(* set*(..))

执行AccountService接口定义的任何方法:

execution(* com.st.dk.service.AccountService.*(..))

执行service包中定义的任何方法:

execution(* com.st.dk.service.*.*(..))

执行service包中定义的任何方法或其中一个 sub-packages:

execution(* com.st.dk.service..*.*(..))

比如我们上一章中的案例可以修改为:

@Pointcut("execution(* com.st.dk.demo7.service.BookService.*.*(..))")

 

posted @ 2020-10-17 17:17  戴着假发的程序员0-1  阅读(2603)  评论(0编辑  收藏  举报