Spring AOP编程 【学习笔记 理论篇】

AOP概念

AOP: Aspect Oriented Programming  面向切面编程

Aspect概念

能贯穿到多个类多个方法中的共同代码,称为一个切面。

AOP任务

将多个类多个方法中的共同代码抽取到切面类中,再通过AOP机制切入到原来的位置。

解决的问题

通俗易懂的来说,就是很多方法内有着同样的代码,但又部分不一样,这时候将这些共同的代码提取出来称着为切面,而代码所在的位置称着为切入点,把共同的代码提取到一个类A的某个方法里面,然后设置该方法的切入点,当程序执行到相应的切入点时,会自动执行这个类相应方法里的代码,执行完后回到原本的程序里面继续执行。

解决的问题也就是减少重复代码。但又不同于继承。

开发任务例子:

1.记录每个类出现的异常,将信息写入到数据库。记录项目: 出现异常的类,方法,时间,异常信息。

2.记录每个类出现的异常,发送一个Mail到指定的邮箱。邮件的内容: 出现异常的类,方法,时间,异常信息。

3.记录业务层每个类的每个方法的执行时间,并保存到数据库中。记录的项目:运行类名,方法名,运行时间(毫秒),执行的时间(年,月,日,时,分,秒)

如果使用传统的方法来解决上述问题,对于每个类每个方法都添加同样的代码,那么工作量会很大,如果由30个类,每个类有20个方法,那么你需要粘贴复制600次,这时引入AOP面对切面编程就很容易解决了。

AOP核心的概念

    1.Join point 连接点

切面运行的地点:Spring只支持方法的运行:方法前,方法后,方法前后,抛出异常后,等。

    2.Pointcut: 切入点:

将有一定规律的连接点合并为一个切入点。

所有业务层类的所有方法前。

所有业务层所有以get开头的方法前。

所有业务层所有以getList开头的方法后。

    3.Advice(通知)

切面的执行的代码。

开发人员的主要任务是编写Advice代码。

    4.Aspect(切面)

Aspect=Advice+Pointcut

指示在指定的Pointcut上执行Advice代码。

    5.Target object(目标对象)

切面要切入的目标对象。

    6.Weaving (织入)

将切面与目标对象融合在一起的过程或机制。

    7.AOP proxy 代理

由代理对象将目标对象和切面对象,Spring自动创建代理对象。

猜你喜欢

转载自blog.csdn.net/Kedongyu_/article/details/81387140