AOP的基本概念

AOP框架能处理程序执行中特定切入点(Pointcut),而不与具体某个类耦合。编程

下面是面向切面编程的一些术语:缓存

概念 描述
切面(Aspect) 业务流程运行的某个特定步骤,即关注点,关注点可能横切多个对象,因此经常也称为横切关注点。
链接点(Joinpoint) 程序执行过程当中明确的点,如方法的调用或异常的抛出。SpringAOP中链接点老是方法的调用。
加强处理(Advice) AOP框架在特定的切入点执行的加强处理。处理有around,before和after等类型。
切入点(Pointcut) 能够插入加强处理的链接点。简而言之,当某个链接点知足指定要求时,该链接点将被添加加强处理,该链接点也就变成了切入点。
引入 将方法或字段添加到被处理的类中。Spring容许引入新的接口到任何被处理的对象。例如你可使用一个引入,使任何对象实现isModified接口,以此来简化缓存。
目标对象 被AOP框架进行加强处理的对象。若是AOP框架是经过运行时代理来实现的,那么这个对象将是一个被代理的对象。
AOP代理 AOP框架建立的对象,简单地说,代理就是对目标对象的增强。SpringAOP中的代理既能够是JDK动态代理,也能够是cglib代理。前者为实现接口的目标对象代理,后者为不实现接口的目标对象代理。
织入(Weaving) 将加强处理添加到目标对象中,并建立一个被加强的对象(AOP代理)的过程就是织入。织入有两种实现方式:编译时加强(AspectJ)和运行时加强(cglib)。SpringAOP在运行时完成织入。

AOP代理实际上是由AOP框架动态生成的一个对象,该对象可做为目标对象使用。AOP代理包含了目标对象的所有方法,但AOP代理中的方法与目标对象的方法存在差别:AOP方法在特定切入点添加了加强处理,并回调了目标对象的方法。框架

相关文章
相关标签/搜索