首页 > 其他 > 详细

AOP编译

时间:2021-03-13 09:02:17      阅读:18      评论:0      收藏:0      [点我收藏+]

那么,此时便是 AOP 的出场了。OOP 是对业务处理过程的实体及其属性和行为进行抽象封装,而 AOP 则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段。

 

AOP 中包含几个重要概念,连接点、切点、增强、切面、织入。对于上述双赢的实现(图 3),所有用水人都可以作为“连接点”;其中需要喷药的人才是我们需要通过帮助药物勾兑实现双赢的人,也就是我们选择的切点;我们需要做的药物勾兑便是“增强”;用水人只需要在到来取水时告诉我们取水用途,我们便会根据是否属于切点,在取水后进行增强的“织入”;切点、增强及增强的时机共同组成切面,及在需要喷药的人取水后进行药物勾兑。如此以来,喷药的人只需要去做核心的事情——喷药,所有人喷药业务中的勾兑环节被剥离在同一切面通过我们来解决即可。

 

PS:示例不精确,旨在通过简单的现实场景避免抽象概念的模糊。

 

二、AOP 的适用场景举例

权限校验:具体操作(如 CURD)前进行 token 校验鉴定数据访问权限。

日志记录:在关键方法节点进行日志打印,如 SQL 打印、起止时间打印。

监控性能:方法执行时间的监控、成功/失败率统计等。

事务管理: 调用方法前开启事务, 调用方法后提交关闭事务。

三、AOP 的实现方式

AOP 实现时有三种方式:生成子类字节码、生成代理类字节码、直接修改原类的字节码。

 

类别 机制 原理

静态 AOP 静态织入 在编译期,切面直接以字节码的形式编译到目标字节码文件中。

动态 AOP 动态代理 在运行期,目标类加载后,为接口动态生成代理类,将切面植入到代理类中。

动态字节码生成<

 隐藏内容

AOP编译

原文:https://www.cnblogs.com/ivdub/p/14527422.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!