一.什么是AOP?
AOP简介
AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。它是面向对象编程(OOP)的一种补充,目前已成为一种比较成熟的编程方式。
AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。这种采用横向抽取机制的方式,采用传统的OOP思想显然是无法办到的,因为OOP只能实现父子关系的纵向的重用。虽然AOP是一种新的编程思想,但却不是OOP的替代品,它只是OOP的延伸和补充。
AOP术语
Aspect:封装的用于横向插入系统功能(如事务、日志等)的类
Joinpoint:在程序执行过程中的某个阶段点
Pointcut:切面与程序流程的交叉点,即那些需要处理的连接点
Proxy(代理):将通知应用到目标对象之后,被动态创建的对象
Weaving(织入):将切面代码插入到目标对象上,从而生成代理对象的过程。