Spring中关于AOP的实践之概念

一.什么是AOP

AOP:也称作面向切面编程

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

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

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

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

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

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

具体流程如下:

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

 

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

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

 

 

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

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

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

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

 

posted @ 2018-10-13 17:15  奶昔书斋  阅读(3107)  评论(0编辑  收藏  举报