AOP的一些重要概念

来源:互联网 发布:易语言ftp源码 编辑:程序博客网 时间:2024/05/11 11:06

AOP(Aspect-Oriented Programming)中的概念很多,理解这些概念了,对帮助理解AOP的设计思想很有帮助。

关注点(concern)

一个关注点可以是一个特定的问题、概念、或是应用程序的兴趣区间。譬如安全性、事务管理等是系统中常见的关注点。

横切关注点(crosscutting concern)

如果一个关注点的实现代码散落在很多个类或方法中,我们就称之为“横切关注点”。

方面(aspect)

一个方面是对一个横切关注点的模块化,它将那些原本散落在各处的、用于实现关注点的代码归整到一处。

连接点(join point)

程序执行过程中的一点。例如方法调用(method invocation)、字段访问(field access)、异常抛出(throws)。

切入点(pointcut)

一组连接点的总称,用于指定某个增强应该何时被调用。切入点常用正则表达式或别的通配符语法来描述。

增强(advice)

在特定连接点执行的动作。

增强器(advisor)

是Spring引入的概念,它由两个部分组成:一个增强,以及一个用于说明“在何处进行增强”的切入点。增强器完整地模块化了一个方面。

引介(introduction)

为了一个现有的Java类或接口添加方法或字段。这种技术可以用于实现Java中的多继承,或给现有对象模型附加新的API。

混入继承(mixin inheritance)

一个“混入类”封装了一组功能,这组功能可以被“混入”到现有的类当中,并且无须求助于传统的继承手段。

织入(weaving)

将方面整合到完整的执行流程中。

前增强(before,pre)

在连接点调用之前,首先调用增强。

后增强(after,post)

在连接点调用之后,再调用增强。

环绕增强(around)

这类增强可以完全控制执行流程。除了完成本身的工作外,它还需要负责主动调用连接点,促使真实的操作发生(proceed)。

拦截器(interceptor)

很多AOP框架用它来实现字段和方法的拦截(interception)。随之而来的就是在连接点处挂接一条拦截器链(interceptor chain),链条上的每个拦截器通常会调用下一个拦截器。实际上,拦截是一种AOP实现策略。

AOP代理(AOP proxy)

被增强的对象引用。AOP代理可能是J2SE的动态代理,也可能是借助字节码操作工具生产的。

目标对象(target object)

位于拦截器末端的对象实例。

 

 

注:以上摘自《J2EE Development without EJB》中文版。

 

 

 

原创粉丝点击