标签:
AOP术语
连接点:程序执行的某个特定的位置,如类的开始初始化前,类的初始化后,类的个某个方法
调用前,调用后,方法抛互联网异常后。
切点,连接点相当于数据库中的记录,而切点相当于查询条件。
增强:是织入到目标类连接点上的一段程序代码。Spring所提供的增强接口都是带方位名的。
BeforeAdvice、AfterReturnAdvice、ThrowsAdvice
目标对象:增强逻辑的织入目标类。
引介:引介是一种特殊的增强,它为类添加一些属怕和方法。这样即使一个业务类原本没有实
现某个接口,通过AOP的引介功能,我们可以动态地为该业务类添加接口的实现逻辑,让业务类
成为这个接口的实现类。
织入:是将增强添加对目标具体连接点上的过程,AOP像一台织布机,将目标类、增强或者引介
通过AOP这台织布机天衣无逢地编织到一起。
AOP有三种织入方式:
1)编译织入,这要求使用特殊的java编译器;
2)类装载期织入,这要求使用特殊的类装载器;
3)动态代现织入,在运行期为目标类添加增强生成子类的方式。
Spring采用动态代理织入,而AspectJ采用编译期织入和类装载期织入。
代理:一个类被AOP织入增强后,就产生出一个结果类,它是融合了原类和增强逻辑的代现类。根据
不现的代理方式,代理类既可能是和原类具有相同的接口类,也可能就是原类的子类,所以我们可以
采用调用原类相同的方式调用代理类。
切面:切面由切点和增强(引介)组成,它既包括了横切逻辑的定义,也包括了连接点的定义,Spring
AOP就是负责实施切面的框架,它将切面所定义的横切逻辑织入切面所指定的连接点中。
Spring AOP使用了两种代理机制:
一种是基于JDK的动态代理;另一种是基于CGLLIB的动态代理。之所以需要这两种代理机制, 很大程度
是因为JDK本身只提供接口的代理,而不支持类的代理。
标签:
原文地址:http://www.cnblogs.com/wangyonglong/p/5178497.html