【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/javazejian/article/details/56267036
出自【zejian的博客】
https://pan.baidu.com/s/1nOsgH6Zm50e2u5ln_3kAhQ
1.切面
切面包括了 切点和通知两个部分
切点(pointcut)定义需要应用通知的目标函数,通知则是那些需要应用到目标函数而编写的函数体,切面(Aspect)则是通知与切点的结合。织入(weaving),将aspect类应用到目标函数(类)的过程
1.1切点
切点由pointcut关键字,连接点函数名 和 匹配表达式(包括call关键字和要切入的目标方法)组成pointcut 函数名 : 匹配表达式
pointcut recordLog():call(* HelloWord.sayHello(..));
recordLog连接点函数,HelloWord.sayHello是要切入的函数
*表示任意返回值,接着就是需要拦截的目标函数,sayHello(..)的..,表示任意参数类型
1.2通知
[返回值类型] 通知函数名称(参数) [returning/throwing 表达式]:连接点函数(切点函数){
函数体
}
after():recordLog(){
System.out.println("sayHello方法执行后记录日志");
}
通知里定义了连接点函数的具体实现,到这里跟要切入的目标函数就没有关系了
转载于:https://blog.51cto.com/7981477/2345853