Spring AOP

来源:互联网 发布:劝妓从良知乎 编辑:程序博客网 时间:2024/06/05 01:23

Spring AOP构建于IOC之上。

AOP是Aspect Oriented Programing的简称,译为:面对切面编程


AOP术语:

连接点(JoinPoint):程序执行的某个特定位置,如类开始初始化前,类初始化后,类某个方法调用前和调用后,方法抛出异常后。一个类或者一段程序代码拥有一些具有边界性质的特定点,这些代码中的特定点就称为  "连接点"。Spring仅支持方法的连接点,即仅能在方法调用前,方法调用后,方法抛出异常时以及方法调用前后这些程序执行点织入增加。


切点(Pointcut):每个程序类拥有多个连接点,如一个拥有两个方法的类,这两个方法都是连接点,即连接点是程序类中客观存在的事务。“切点”就是特定的连接点。



增加(advice):增加是织入目标类连接点上的一段程序代码。Spring所提供的增加接口都是带方位名的:BeforeAdvice,AfterReturningAdvice,ThrowsAdvice等。



目标对象(Target):增加逻辑的织入目标类。


引介(Introduction):引介是一种特殊的增加,它为类添加一些属性和方法。这样,即使一个业务类原本没有实现某个接口,通过AOP的引介功能,也可以动态的为该业务类添加接口的实现逻辑,让业务类成为这个接口的实现类。


织入(Weaving):织入就是将增加添加到目标类具体的连接点上的过程,

           AOP有3种织入的方式:

                             1.编译期织入,这要求使用特殊的java编译器

                             2.类装载期织入,这要求使用特殊的类装载器

                             3.动态代理织入,在运行期为目标类添加增强生成子类的方式

Spring采用动态代理织入。



代理(Proxy):一个类被AOP织入增强后,就产生了一个结果类,它是融合了原类和增加逻辑的代理类。


切面(Aspect):由切点和增强组成,它既包括了横切逻辑的定义,也包括了连接点的定义,SpringAOP就是负责实施切面的框架,它将切面所定义的横切逻辑织入切面所指定的连接点中。




AOP的工作重心在于如何将增强应用于目标对象的连接点上,这里首先包括两个工作:1.如何通过切点和增加定位到连接点。  2.如何在增加中编写切面的代码。


原创粉丝点击