分享:aop 相关术语介绍之 本人通俗易懂大白话介绍
文章目录
1. 前言
相信这个aop里面的术语或许在我们看文档的时候,比较容易用到。而有些解释又比较的官方,让人看不懂。接下来我就把我对这些术语的理解分享一下。可能有不正确的地方,仅供参考。我不想误人子弟。
2. aop 相关术语介绍
2.1 AOP 的理解
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,
主要作用是(我自己的话):
对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2.2 Joinpoint(连接点)
2.2.1 spring 官方文档解释
2.2.2 个人理解
一般的方法都可以作为连接点,因为他们都可以进行增强。所以连接点,就可以理解为方法。
或许还可以理解成为下面的这些点
- 目标对象中的方法的前面 (前置增强) (算一个连接点)
- 目标对象中的方法的后面(后置增强)(算一个连接点)
- 目标对象中的方法异常中的cash (算一个连接点)
…
这些也可以理解为连接点
。那么这么以来,一个方法就有好多连接点
了????
这个也是我个人的一个理解。希望不要误人子弟
2.3 Pointcut(切入点)
2.3.1 spring 解释
2.3.2 个人理解
这个切入点啊,就是
将要增强的那些方法
,也就是说,切入点是连接点的子集
。
比如我们都知道有
切入点表达式
,那么符合此表达式的方法,都属于切入点
。
比如下图
2.4 Advice(通知/增强)
2.4.1 spring 官方文档解释
2.4.2 个人理解
都知道有啥 前置通知啊,后置通知啊环绕通知呀。那么这个通知是啥呢。那肯定
是目标对象方法执行之后 或者 之前执行的那个方法的逻辑
。
那么比如说,你有个方法要有事务的支持,那么你在目标对象方法执行的前面,需要进行事务的开启吧?执行完之后需要进行事务的关闭吧?失败了需要有事务的回滚吧?那么这些事务的操作,都跟主要的业务逻辑没啥太大关系。都是我们增强过去的。那么这些事务的操作的增强方法,就相当与通知Advice
。 在我们举的这个例子当中,这个开启事务,就是前置通知
因为他在目标对象方法之前执行的。那么显然,关闭事务啥的,我就不解释了。
2.5 Introduction
2.5.1 spring 官方文档解释
2.5.2 个人理解
实事求是,没个人理解,谢谢????。
2.6 Weaving(织入)
2.6.1 spring 官方文档解释
2.6.2 个人理解
是指把
增强的方法逻辑部分
应用 到目标对象
来创建新的代理对象的过程。
那么在我们上面的例子中, 就是把开启事务的这个方法逻辑,整合到我们这个主业务逻辑方法[比如updateOrder() 业务方法] 的这个
过程
, 那么感觉感觉好像生成这个代理对象的过程。那么这个叫织入。不难理解哈。
2.7 Target
用过动态代理,或者知道代理模式的都知道。那就是原本没有增强的那个对象就叫Target。我们都知道这个Aop 是通过代理实现了哈。没啥解释的。
2.8 Proxy
增强之后的代理类。看2.7 节即可知道。
2.9 Aspect
一个抽象的概念。。。。。。仁者见仁吧。