Spring中关于AOP的实践之概念

Posted kaithy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring中关于AOP的实践之概念相关的知识,希望对你有一定的参考价值。

一.什么是AOP

AOP:也称作面向切面编程

在分享几个概念执行我想先举个栗子(可能例子举得并不是特别恰当):

1.假如路人A走在大街上,被一群坏人绑架了;

2.警察叔叔接到报警迅速展开行动:收集情报,人员组织,准备装备。。。

3.警察和坏人打了一架,将人质解救出来(在这里我假设人质A受了伤)

4.警察叔叔将人质送往医院治疗

5.警察举行新闻发布会,宣布人质解救成功。

具体流程如下:

但是问题来了,如果哪一天又有人被绑架了,警察叔叔又得通过这一系列流程,有的情况下准备的时间远远大于解救人质所花的时间,那么能不能将一些通用的步骤进行托管,所以有了下面的改进:

 

情报收集与物质人员准备交给后勤机构,运送伤员则交给医护人员。警察叔叔就专注于与营救人质。

好了现在来解释一下关于Spring中关于AOP的几个要点(异常通知与环绕通知没有在图上画出):

 

 

1.切点:即程序沿纵向正常执行时的其中一个方法

2.通知:通知分为前置通知、后置通知、异常通知与环绕通知,前置通知即在切点执行之前先行执行(个人认为多用于资源的准备),后置通知则是在切点执行完成后执行(个人认为多用于方法结束后对资源的处理),异常通知顾名思义在切点执行出现异常时执行的通知,环绕通知则是前置与后置通知的结合

3.切面:正常的程序执行是纵向的,如同一个管道,前置与后置通知的加入如同在管道的某一点切了一刀,程序暂时性的横向执行,即切点与通知一起组成了切面。

4织入:即将通知方法放入到切面中的一种称谓(放入的动作就称为织入)

 

以上是关于Spring中关于AOP的实践之概念的主要内容,如果未能解决你的问题,请参考以下文章

面试中关于Spring AOP和代理模式的那些事

Spring入门之AOP实践:@Aspect + @Pointcut + @Before / @Around / @After

Spring读源码系列之AOP--01---aop基本概念扫盲---上

Spring-AOP之工作实践

Spring-AOP之工作实践

Spring之AOP