1:切面(Aspect)
一个关注点的模块化,这一关注点的实现可能横切多个对象,而这个模块化过程,由Inteceptor来实现,数据库的事务管理就是一个典型的切面
2:通知(Advice)
在特定的连接点,AOP框架执行的动作,各种通知类型包括:Before通知,After通知,Around通知和Throw通知等
3:切入点(Pointcut)
指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式来指定触发通知的集合特征
4:连接点(Joinpoint)
程序执行过程中明确的点,如方法的调用或特定的异常被抛出。
5:一些框架的AOP实现
AOP元素 |
Spring实现机制 |
Xwork实现机制 |
切面(Aspect) |
拦截器 |
Inteceptor |
通知(Advice) |
Around, Before, After |
Around,Before,After |
切入点(Pointcut) |
满足特定条件的方法 |
Action对象 |
连接点(Joinpoint) |
方法的执行 |
Action的执行 |
从这个表中,我们可以看到Spring和XWork对于AOP实现之间的本质区别就在于两者对于切入点的定义完全不同,或者说拦截器所拦截的对象不同,
Spring主要偏重的是方法级别的AOP拦截,而XWork则是针对Action对象进行拦截