3.2 springAOP的几个关键概念

戴着假发的程序员出品  抖音ID:戴着假发的程序员  欢迎关注

[查看视频教程]

[1]Aspect(切面)

Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。

[2]Joint point(连接点)

表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。

[3]Pointcut(切点)

表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。

[4]Target(目标对象)

织入 Advice 的目标对象.。

[5]Weaving(织入)

将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程

看了上面的例子可能还是有点蒙,再看例子:我们要给所有的添加业务加入权限校验的业务处理。那么看下面的图理解上面的概念:

3.2 springAOP的几个关键概念

图有点乱,听我一个一个解释:

① Aspect中包含了 Pointcut和Advice。 Pointcut就是一个规定,或者说描述,说明我们要织入切面的具体规定。 Advice就是我们要执行的切面业务。

②Join point,在我们上面的例子中,J oint point就是我们要执行的所有的业务方法,也就是上面的两个业务对象中的四个方法。

③Target(目标对象),这个就不用多解释了。

④ 织入器,织入器会根据Pointcut的描述从Joint point中找到符合要求的织入点,将Advice织入到对应的位置。

说道这里希望你对上面的几个概念有所了解。

接下来我们来看看,Advice的几个类型:

[1] before advice(前置通知)

在 join point 前被执行的 advice. 虽然 before advice 是在 join point 前被执行, 但是它并不能够阻止 join point 的执行, 除非发生了异常(即我们在 before advice 代码中, 不能人为地决定是否继续执行 join point 中的代码)

[2]after return advice (后置通知)

在一个 join point 正常返回后执行的 advice

[3]after throwing advice(异常通知)

当一个 join point 抛出异常后执行的 advice

[4]after(final) advice(最终通知)

无论一个 join point 是正常退出还是发生了异常, 都会被执行的 advice.

[5]around advice(环绕通知)

在 join point 前和 joint point 退出后都执行的 advice. 这个是最常用的 advice.

上一篇:通过注解的方式实现Spring AOP报 can't find referenced pointcut myPointCut 错误,我的解决方法


下一篇:变量的两种写法