Spring AOP面向切面编程概述

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

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

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

你可能感兴趣的:(#,SSM,Spring,AOP,面向切面)