SpringAop

一、Aop:面向切面编程(OOP扩展和延续)

1、核心:

横向重复、纵向抽取

SpringAop

2、优点:

1)、对业务的各个部分进行分离
2)、降低业务逻辑各部分之间的耦合度
3)、提高程序可用性
4)、提高开发效率

3、功能

日志记录、性能统计、安全控制、事务处理、异常处理

4、AOP与OOP的区别

一、OOP(面向对象编程)

针对业务处理过程的实体及属性进行抽象封装,获得更加清洗高效的逻辑单元划分

二、AOP(面向切面编程)

针对业务处理过程中的切面进行提取,面对的是处理过程中的某个步骤或阶段,获得逻辑过程中个部分低耦合性的隔离效果
ood/oop是面向名词领域;aop面向动词领域。两者有本质差异

二、AOP相关术语

1、目标对象(target)

指需要被增强的对象,springAop是代理魔兽实现这个对象,永远是被代理对象

2、连接点(join point)

指被增强的方法

3、通知\增强(advice)

实际增强的方法。分为前置、后置、异常、环绕、最终通知

4、切面(aspect)

切入点和通知的结合

5、织入(weaving)

目标对象的连接点被增强的过程

6、代理(poxy)

一个类被AOP织入增强后,产生一个代理类

7、引介(introduction)

一种特殊的通知

三、AOP底层实现

1、静态AOP

指aspectJ实现的AOP,将切面代码直接编译到JAVA类文件中

2、动态AOP

指将切面代码进行动态织入实现AOP

3、实现

JDK提供的动态代理技术和CGLIB动态字节码增强技术

上一篇:HotSpot类模型之ArrayKlass


下一篇:Python-知识梳理(一):面向对象