AspectJ 的切入点表达式(纯干货)

| 官方定义表达式(瞟一眼就行):

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)
解释:
modifiers-pattern] 访问权限类型
ret-type-pattern 返回值类型
declaring-type-pattern 包名类名
name-pattern(param-pattern) 方法名(参数类型和参数个数)
throws-pattern 抛出异常类型
?表示可选的部分

总结(重点在这): execution(访问权限 方法返回值 方法声明(参数) 异常类型)
-----------表达式中黑色文字表示可省略部分,各部分间用空格分开------------

其实也可以结合着方法的定义来记忆,因为本身指定的就是方法:
如下(上面的是方法的例子,下面的是execution(格式)):

public int divide(int x,int y) throws Exception
访问权限 方法返回值 方法声明(参数) 异常类型

其中可以使用的符号如下:

符号 意义
* 表示0至多个任意字符
.. 1.用在方法参数中,表示任意多个参数; 2.用在包名后 ,表示当前包及其子包的路径
+ 用在类名后,表示当前类及其子类;2.用在接口后,表示当前接口及其实现类

举例如下:

execution(public * *(..)) 指定切入点为:任意公共方法。 execution(* set*(..)) 指定切入点为:任何一个以“set”开始的方法。 execution(* com.xyz.service.*.*(..)) 指定切入点为:定义在 service 包里的任意类的任意方法。 execution(* com.xyz.service..*.*(..)) 指定切入点为:定义在 service 包或者子包里的任意类的任意方法。“..”出现在类名中时,后面必须跟“*”,表示包、子包下的所有类。 execution(* *..service.*.*(..)) 指定所有包下的 serivce 子包下所有类(接口)中所有方法为切入 execution(* joke(Object+))) 指定切入点为:所有的 joke()方法,方法拥有一个参数,且参数是 Object 类型或该类的子类。不仅 joke(Object ob)是,joke(String s)和 joke(User u)也是。

最后:
兄弟们加油呀,未来可期!等风来,不如追风去!!


__EOF__

本文作者尼古拉斯_帅气
本文链接https://www.cnblogs.com/yfs1024/p/16205346.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   yfs1024  阅读(303)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示