AOP 核心概念
Aspect:即切面,切面一般定义为一个 Java 类, 每个切面侧重于特定的跨领域功能,比如,事务管理或者日志打印等。
Joinpoint:即连接点,程序执行的某个点,比如方法执行。构造函数调用或者字段赋值等。在 Spring AOP 中,连接点只会有 方法调用 (Method execution)。
Advice:即通知,在连接点要的代码(对特定的切入点上进行功能的增强处理)。
Spring Advice类型:
前置通知(@Before):在执行目标方法之前运行
后置通知(@After):在目标方法运行结束之后运行
返回通知(@AfterReturning):在目标方法返回值后运行
异常同时(@AfterThrowing):在目标方法出现异常后运行
环绕通知(@Around):在目标方法完成前后做增强,环绕通知是最重要的通知类型,像事务、日志都是环绕通知完成的,注意编程中一个核心ProceedingJoinPoint,需要手动执行 jointPoint.procced();
Pointcut:即切入点,一个匹配连接点的正则表达式。当一个连接点匹配到切点时,一个关联到这个切点的特定的 通知 (Advice) 会被执行。
Weaving:即编织,负责将切面和目标对象链接,以创建通知对象,在 Spring AOP 中没有这个东西。