AOP概述

介绍AOP的基本概念,首先对AOP做一个大致的了解

AOP原理以及关键概念


下面结合上面的AOP原理图来看一下AOP的一些关键概念

  • JoinPoint:代表程序运行时的一个具体的织入点
  • Pointcut:一组JoinPoint的集合,通常由正则表达式来定义
  • Advice:切面的逻辑
  • Advisor:一个Advisor包含一个Advise和一个PointCut

Spring AOP实现的基本类图

了解了这些基本的概念以后,来看下Spring使如何实现这些概念的,看下面的类图

下面对几个重要的类做简要说明:

  • Advice:Advice接口,使一个标签接口,没有定义任何成员和方法
  • BeforeAdvice,AfterAdvice,ThrowsAdvice:这三个接口都只是标签接口,没有定义任何成员方法
  • MethodBeforeAdvice:接口,定义了方法调用前调用的Advice
  • AfterReturningAdvice:接口,定义了方法调用返回后的Advice
  • Pointcut:Spring Pointcut的核心抽象,一个Pointcut包含了一个ClassFilter和一个MethodMatcher
  • MethodMatcher:Pointcut的一部分,检查目标方法是否和advice是相匹配的
  • Advisor:Advisor接口,持有一个Advice
  • PointcutAdvisor:在Advisor接口的基础上持有了一个Pointcut

从整个类图我们也可以看出来Advice,Pointcut以及Advisor之间的关系