AOP常用专业术语:
① 方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。 (比如项目中持久化,事务管理,日志管理,角色权限,系统监控,安全性管理等)
② 连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。 (指要切入执行什么样的方法)
③ 通知(Advice):在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。( 在什么时候执行)
④ 切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。(指地点,在哪里执行,那些类那些方法或其集合,如:<aop:pointcut id="pointcut_1" expression="execution(* com..*.ucc.*.*(..))" />)
advisor 是spring aop中的一个概念。advisor 可以翻译为增强器, 他是切入点(pointcut)和advice 的适配器。 它有两部门组成:一个增强以及一个说明在何处增强的切入点。增强器完整的模块化了一个方面(因为一个方面,就是由在什么地方增强和怎么增强组成的) 。 增强和切入点可以复用。
⑤ 引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现IsModified接口,来简化缓存。
⑥ 目标对象(Target Object):包含连接点的对象,也被称作被通知或被代理对象。
⑦ AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。
⑧ 编织(Weaving):组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。
各种通知类型包括:
① Around通知:包围一个连接点的通知,如方法调用。这是最强大的通知。Aroud通知在方法调用前后完成自定义的行为,它们负责选择继续执行连接点或通过返回它们自己的返回值或抛出异常来短路执行。
② Before通知:在一个连接点之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)。
③ Throws通知:在方法抛出异常时执行的通知。Spring提供强制类型的Throws通知,因此你可以书写代码捕获感兴趣的异常(和它的子类),不需要从Throwable或Exception强制类型转换。
④ After returning通知:在连接点正常完成后执行的通知,例如,一个方法正常返回,没有抛出异常。
Around通知是最通用的通知类型。大部分基于拦截的AOP框架(如Nanning和Jboss 4)只提供Around通知。
下面这个对AOP说的很详细,有兴趣的同学可以看看:http://www.iteye.com/topic/1116696