AOP(aspect Oriented Programming)
将我们的业务逻辑当中的非业务逻辑代码(交叉业务)包括 安全,记录日志,事物 相关的代码的提取出来,形成一个横向的切面,然后把业务逻辑看成是纵向的话,然后我们以横向交叉的方式应用到业务流程当中的过程 就叫做 AOP
- 面向切面编程,面向方面编程
- 对 OOP 编程的补充
- 底层实现是采用动态代理
- 在你的业务流程当中,和你的业务不相关的,非业务逻辑通用代码
优点
- 代码复用性增强
- 代码易维护
- 使开发者更关注业务逻辑
切面编程七大术语
放通知代码的地方就是连接点,被放通知代码的那段业务方法叫切点 把通知代码放在这段业务上的这个动作就叫织入,两个形成的这种模式就叫切面
连接点 JoinPoint 在程序的整个执行过程中,可以织入切面的位置,方法的执行前后,异常抛出之后等位置
切点 Pointcut 真正织入切面的方法
通知 Advice 又叫 增强 事物,日志,安全代码,具体的代码就是通知 通知的方式:
- 前置
- 后置
- 环绕
- 异常
- 最终
切面 aspect 切点 + 通知 就是切面
织入 weaving 把通知应用到目标对象上的过程
代理对象 Proxy 一个目标对象被织入通知后产生的新对象
目标对象 Target 被织入通知的对象
切点表达式
用来定义通知 advice 往哪些方法上切入
js
"execution(修饰符 返回值类型 全限定类名 方法名(形式参数列表))";