切面(Aspect):切面用于组织多个Advice,Advice放在切面中定义。
连接点(Joinpoint):程序执行过程中明确的点,如方法的调用,或者异常的抛出。在Spring AOP中,连接点总是方法的调用。
增强处理(Advice):AOP框架在特定的点执行的增强处理。处理有“before”,“around”,“after”等。
切入点(Pointcut):可以插入增强处理的连接点。简而言之,当某个连接点满足指定要求时,该连接点将被添加增强处理,该连接点也就变成了切入点。
pointcut xxxPointcut():execution(void H*.say*())
如何使用表达式定义切入点是AOP的核心,Spring默认使用AspectJ切入点语法:
引入:将方法或字段添加到被处理的类中。Spring允许将新的接口引入到任何被处理的对象中。例如,你可以使用一个引入,使任何对象实现IsModified接口,以此来简化缓存。
目标对象:被AOP框架进行增强处理的对象,也被称为增强的对象。如果AOP框架采用的是动态AOP实现,那么该对象就是一个被代理的对象。
AOP代理:AOP框架创建的对象,代理就是对目标对象的增强。Spring中的AOP代理可以是JDK动态代理,也可以是cglib代理。前者为实现接口的目标对象的代理,后者不实现接口的目标对象的代理。
织入(Weaving):将增强处理添加到目标对象中,并创建一个被增强的对象(AOP代理)的过程就是织入。植入有两种实现方式---编译时增强(如AspectJ)和运行时增强(如Spring AOP)。Spring和其他纯Java AOP框架一样,在运行时完成织入。
网友评论