Spring AOP面向切面编程概述

AOP 的全称是 Aspect-Oriented Programming ,即面向切面编程(也称面向方面编程)。 它 是面向对象编程 (OOP) 的一种补充,目前已成为一种比较成熟的编程方式。
在传统的业务处理代码中,通常都会进行事务处理、日志记录等操作。 虽然使用 OOP 可以 通过组合或者继承的方式来达到代码的重用,但如果要实现某个功能(. 如日志记录),同样的代 码仍然会分散到各个方法中 。 这样,如果想要关闭某个功能,或者对其进行修改,就必须要修改 所有的相关方法。 这不但增加了开发人员的工作量,而且提高了代码的出错率。
AOP 采取横向抽取机制,将分散在各个方法中的 重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。 这种采用横向抽取机制的方式,采用传统的 OOP 思想显然是无法办到的,因为 OOP 只能实现 父子关系的纵向的重用。 虽然 AOP 是一种新的编程思想,但却不是 OOP 的替代品,它只是 OOP 的延伸和补充。
在这里插入图片描述

AOP 术语
在学习使用 AOP 之前,首先要了解一下 AOP 的专业术语。 这些术语包括 Aspect、 Joinpoint、 Pointcut、 Advice、 Target Object、 Proxy 和 Weaving ,对于这些专业术语的解释

  • Aspect (切面):在实际应用中,切面通常是指封装的用于横向插入系统功能(如事务、 曰志等)的类,该类要被 Spring 容器识别为切面,需要在配置文件中通 过<bean>元素指定。
  • Joinpoint (连接点):在程序执行过程中的某个阶段点,它实际上是对象的一个操作,例 如方法的调用或异常的抛出。 在 Spring AOP 中,连接点就是指方法的调用。
  • Pointcut (切入点):是指切面与程序流程的交叉点,即那些需要处理的连接点,通常在程序中,切入点指的是类或者方法名,如某个通知要应用到所有以 add 开头的 方法中,那么所有满足这一规则的方法都是切 入点。
  • Advice( 通知/增强处理): AOP 框架在特 定的切入点执行的增强处理,即在定义好的切入 点处所要执行的程序代码。 可以将其理解为切面 类中的方法,它是切面的具体实现
  • Target Object (目标对象):是指所有被 通知的对象,也称为被增强对象。 如果 AOP 框 架采用的是动态的 AOP 实现,那么该对象就是 一个被代理对象。
  • Proxy (代理):将通知应用到目标对象之 后,被动态创建的对象。
  • Weaving (织入):将切面代码插入到目标对象上,从而生成代理对象的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Modify_QmQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值