【Spring】什么是AOP(面向切面编程),这里让你清晰明朗

一、AOP的概念

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理【点击查看】实现程序功能的统一维护的一种技术。

利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率


二、AOP是一种思想

举一个例子:我们写了一个业务,我们想在这个业务执行前做一些校验的工作和、执行后做一些日志的工作。

1. 在没有AOP的阶段,我们的解决方法有三种。

第一种:内置代码
在这里插入图片描述

第二种:封装方法,调用方法

在这里插入图片描述

第三种:使用过滤器
在这里插入图片描述

2. 有AOP的阶段

简单地去理解,其实AOP要做三类事:

  1. 谁去切入,也就是切入的类是谁(切面)。
  2. 在哪里切入,也就是权限校验等非业务操作在哪些业务代码中执行(切点)。
  3. 在什么时候切入,是业务代码执行前还是执行后(befor和after)。
  4. 切入后做什么事,比如做权限校验、日志记录等。

工作流程如下图:
在这里插入图片描述


三、介绍一下AOP名词概念

(1)Aspect(切面):通常是一个类,里面有Before() 和 After()方法

(2)JointPoint(连接点):可以理解为被AOP的类中具体的方法

(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around。这些就是需要织入到连接点中的代码。

(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式

(5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强。

(6)advisor:增强器,用来筛选类中的哪些方法是我们的连接点(哪些方法需要被拦截).

(7)wave:织入,把切面/切面类和目标类的动态接入。


四、实现AOP的三种方式

我之前的一片文章写得还是很详细的<<实现AOP的三种方式(Spring的AIP接口、自定义、注解)>>【点击查看】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值