ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

核心概念

2022-04-06 21:32:12  阅读:170  来源: 互联网

标签:连接点 核心 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有