*阿炮的Spring之旅003站*- 走进Spring的核心思想AOP(面向切面编程)

36 阅读2分钟

每一个框架都自己核心思想,现在我就记录一下Spring的核心思想AOP

代理

简述

代理模式就是通过提供一个代理类,让我们调用目标方法的时候,不直接在目标方法里进行调用附加方法,而是通过代理类间接的调用。让不属于核心逻辑的代码从目标方法中剥离出来。

这样的好处就是让附加方法有利于统一维护。

静态代理

优点:可以在不修改目标对象的前提下扩展目标对象的功能。 缺点:冗余:代理对象要实现与目标对象一致的接口,会产生过多的代理类。不易维护:一旦接口增加方法,目标对象和代理对象都要进行修改、

动态代理

方式: 接口:JDK动态代理。 继承:Cglib、Javassist动态代理。

就是利用反射机制,进行实现的。方便,便于进行维护。

AOP

概述

AOP: 面向切面编程,利用AOP可以对业务逻辑的各个部分进行分离,让业务逻辑部分之间的耦合度降低。

作用

  1. 简化代码:将固定位置的重复代码抽取出来。
  2. 代码增强:将特定的功能封装起来,哪里需要便织入哪里。

AOP的了解语句

横切关注点

从每个方法中抽取出来的同一类的非核心业务。 附加方法中有10个附加功能,就有10个横切关注点。

通知

每一个横切关注点的实现叫做 通知

  • 前置通知:在被代理的目标方法前执行
  • 返回通知:在被代理的目标方法成功结束后执行
  • 异常通知:在被代理的目标方法异常结束后执行
  • 后置通知:在被代理的目标方法最终结束后执行
  • 环绕通知:使用try-catch-finally结构围绕整个被代理的目标方法

切面

封装通知方法的类

目标

被代理的目标对象

代理

向目标对象加上通知后创建的代理对象

连接点

程序是从上到下执行的,我们的增强代码时横切进去的,这个交汇点就是连接点

切入点

定位连接点的方式