不能不知道的AOP概念

类别:Java 点击:0 评论:0 推荐:

Concern:一个特定的问题,关注点。这并不是AOP中才有的概念,OO中也有concern,只不过是采用OO的方法来实现。

Crosscutting concern:其实现切过了多个类的concern,比如安全检查,事务处理等。

Aspect:模块化的crosscutting concern。也就是将安全检查之类的在许多类中都要用到的通用功能,用统一的模块化的代码加以提取实现。这就是所谓的方面。这其实也可以使用面向对象的方式来实现,只不过在AOP中不需要在用到这些功能的地方进行显示调用。对于业务程序员,方面模块是透明的。

Join point:程序执行过程中的连接点,切换点。AOP就是在这些点中打入锲子,将aspect(方面)切入到连接点中,包括三种:

l         方法调用点

l         field访问点

l         异常抛出点

Advice:也就是aspect的具体实现,在join point中插入的东西,在程序执行到join point的时候,会执行advice。很多AOP框架中使用interceptor(解释器)来实现。三种类型:

l         Before(pre):在join point之前调用

l         After(post):在join point 之后调用

l         Around:advice控制对join point的调用

 

Pointcut:一组join point。

Introduction:给类或者接口增加方法或成员

Mixed inheritance:使用introduction方式来实现类似于多重继承的功能

Weaving:将方面织入到程序执行流程中。

本文地址:http://com.8s8s.com/it/it15783.htm