增强(Advice):增强定义了切片做什么和何时做。Spring切片有以下5种增强
连接点(Join points):你的应用程序可能有成千上万次机会被增强。这些机会就是连接点。一个连接点是在程序执行过程中切面可以被插入的点。这个点可能是一个方法被调用、一个异常被抛出、甚至一个域(成员变量)被修改。你的切片的代码可以在这些点被插入到应用程序的正常流程中以增加新的行为。
切入点(Pointcuts):如果增强定义了切片做什么和何时做,那么切入点定义了在了哪里做。一个切入点的定义包括了一个或多个增强可以被织入的连接点。你可以通过显式的类和方法名或者常规的匹配类和方法名模型的表达式来指定连接点。
切面(Aspects):一个切面是增强和切入点的集合。
引入(Introductions):引入允许你为某个已有的类增加新的方法或者属性。
织入(Weaving):织入是一个将切片应用的一个目标对象以创建一个新的代理对象的过程。切片会在特定的连接点被织入到目标对象中。织入可以发生在以下几个目标对象生命周期的节点上。
并非所有的AOP框架都是一样的,它们可能通过连接点模型的丰富程度不同进行区分,也可能通过织入切片方式不同区分。无论怎样,创建切入点以定义切片织入的连接点的能力是AOP框架的关键。
Spring对AOP的支持有以下4种方式:
前3种方式是Spring自己的实现。Spring通过动态代理实现AOP。因此,Spring AOP受限于方法拦截。
第一种方式太过成就,已经很少应用,这里不再赘述。
通过aop命名空间,你可以将pure POJOs变为切片。事实上,这些POJOs仅提供响应切入点调用的方法。不幸地是,这种技术需要XML配置,但是这是一种简单的声明式地将任何对象变为切片的方式。
原文:http://www.cnblogs.com/m-evan/p/5397329.html