AOP概述(什么是AOP?)——Spring AOP(一)

AOP概述–什么是AOP


面向切面编程,能够让我们在不影响原有功能的前提下,为软件横向扩展功能 。AOP解决了OOP中遇到的一些问题,是OOP的延续和扩展。

什么是横向扩展?

软件项目中的三层架构分为持久层,业务层和表示层。当我们处理一个任务时,是从表示层开始到业务层再到持久层,这是一个纵向的过程。而横向的意思就是值针对其中的任意一层,对这一层的所有方法进行处理。
举例:在教学管理系统中,如果我们要查询所有的student,则需要先从表示层执行查询list方法,再去业务层执行list方法,再到持久层执行list方法。要查询所有的teacher,也是一样的过程。那我们现在要做一个操作,让不管哪个模块只要是执行了任何一个业务层的list方法时就抛出一个异常,这种半路插刀的方式就是横向扩展功能。

在这里插入图片描述


如上图所示:
当我们需要在许多类中添加相同逻辑(或记录等其他)代码的时候,一般我们编程会在每一个类中都写上这些代码。当需要修改的时候,我们又必须找出这些类来删除这些逻辑代码。
当我们需要这些逻辑代码指定到类中的某个方法前面执行,或者在方法后面执行,又或者我想指定在类的某一个位置去执行它,我们就要修改类了。
黑线为一个流程代码,红线为切入的代码。即在4个流程中固定位置插入了2个逻辑代码,如果你不需要的时候,你完全可以撤出红线代码,而要修改的话,也只需修改这三个类(红线)即可,因为主代码(黑线)和添加代码(红线)是没有耦合的,相当于插拔式的(此案例引用了之前读过的一篇博客,找不到原文了)。
这就是我们所说的AOP,AOP就是在某一个类或方法执行前后打个标记,声明在执行到这里之前要先执行什么,执行完这里之后要接着执行什么。插入了新的执行方法。


如果此出还是有不懂的朋友,可以看下一章更详细的AOP设计原理:

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

robona

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值