在理解了Spring的AOP后,需要重点理解的三个概念是:Pointcut Advice Advisor
(1)切入点 Pointcut
在介绍Pointcut之前,有必要先介绍 Join Point(连接点)概念。
连接点:程序运行中的某个阶段点,比如方法的调用、异常的抛出等。比如方法doSome();
Pointcut是JoinPoint的集合,它是程序中需要注入Advice 的位置的集合,指明Advice要在什么样的条件下才能被触发。
org.springframework.aop.Pointcut接口用来指定到特定的类和方法,
//源代码
public Interface Pointcut{
//用来将切入点限定在给定的目标类中
ClassFilter getClassFilter();
//用来判断切入点是否匹配目标类的给定的方法
MethodMatcher getMethodMatcher();
Pointcut TRUE=TruePointcut.INSTANCE;
}
在Pointcut接口中主要有两个接口:ClassMatcher和MethodMatcer,有利于代码的重用。
(2)通知Advice
它是某个连接点所采用的处理逻辑,也就是向连接点注入的代码。例如:输出的日志信息 就是一个Advice
(3)Advisor
Advisor是Pointcut和Advice的配置器,它包括Pointcut和Advice,是将Advice注入程序中Pointcut位置的代码