标签:连接点 核心 Advice after 切点 概念 织入 执行
核心概念
aop:Aspect-Oriented Programing 面向切面编程
代理目标 (proxy target)
谁被别人代理,就是代理目标
代理对象 (proxy object)
谁代理别人,谁就是代理对象
执行点(execution point)
每个正在执行的方法就是一个执行点
每个方法都可能成为一个执行点,只要它被调用导致它在执行
方位
before 方法执行前
after-return 方法返回后 / after-throw 方法抛出异常后
after 方法执行后
around 方法执行前 和 方法执行后
try{
// before
int result = MathHelper.div( 100 , 2 );
// after-return
} catch ( Exception e ) {
// after-throw
} finally {
// after
}
连接点(Join Point)
连接点=执行点+方位
连接点就是Advice 可能插入的位置
Advice
在连接点处添加的代码就是Advice
切点 (Pointcut)
对连接点进行筛选的条件就是切点
类似于SQL语句的WHERE子句
将来我们可以通过切点表达式来选择连接点
切面 (Aspect)
切面 = 切点+ Advice
切点用于确定在哪里加入Advice
Advice用于确定加入什么样的代码
织入 (weaver)
将需要添加的Advice添加到目标位置的过程就是织入
织入顺序:确定Advice的天机啊顺序
织入方式:
编译期织入:即在将 .java编译成 .class时就织入相应的代码
类加载器织入:即在类加载时使用特殊的"类加载器"织入相应的代码
运行期织入: 即在运行时动态织入相应的代码
标签:连接点,核心,Advice,after,切点,概念,织入,执行 来源: https://www.cnblogs.com/lcyyds/p/16109644.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。