AOP基本概念

时间:2023-02-11 22:10:28

一、面向切面编程(Aspect Oriented Programming)

是对面向对象编程(OOP)的有益补充和升级

AOP编程思想研究的不是层与层之间的关系,主要的是同一层的各个不同功能块共性功能,比如:访问控制、事务管理、异常处理、日志信息。它主要关注的两个问题:在什么位置执行什么功能

在业务系统中,总有一些散落、穿插在系统的个处,且不得不处理的事情,叫做切面,也叫做横切逻辑。

面向切面编程,简单的说,就是在不改版原有的基础上,为代码增加新的功能模块,对其加强处理。

二、基本概念

1、切面(Aspect):一个模块化横切逻辑,可能会横切多个对象:一般情况下是一个类:可以理解为由增强和切入点组成。

2、连接点(JoinPoint):程序执行过程中能够插入切面的一个点(可能有很多,但是要根据需要进行增强)。一般是指原业务主线中的方法。

3、增强(Advice):切面在某个特定的连接点上执行的代码逻辑。一般是指切面类中的一个用于提供增强功能的方法;

增强的类型:前置增强、后置增强、异常抛出增强、环绕增强、最终增强

4、切入点 (Pointcut):对连接点的特征进行描述,可以使用正则表达式,一个增强和一个切入点关联,并在与这个切入点的某个连接点上运行。即:那些已经被”增强”增强后的连接点。

5、目标对象(Target):需要被一个或多个切面增强的对象;

6、AOP代理(AOP proxy):由AOP框架(Spring)所创建的对象,用来执行增强的功能。

7、织入(Weaving):将增强连接到程序中的类型或对象上的,整个组装的过程。

三、AspectJ:

是一个面向切面编程的框架,它扩展了Java语言。它定义了AOP的语法。

早期的SpringAOP开发很繁琐,但是从Soring2.0以后提供了AspextJ框架的支持。