spring 使用 AspectJ 进行aop 的开发,本篇文章主要讲解基于配置文件实现aop开发。aop实际就是不改原代码来扩展程序的功能,这也就是引入 aop的意义。
1. 首先介绍aop开发的相关术语。
- JoinPoint(连接点) : 所谓连接点是指那些被拦截的到的点,通俗的说就是方法,在spring 只支持方法类型的连接点。即类里面的哪些方法被增强,正如下面代码中User类中的方法 add(),update()都可以被称为连接点,它们都可以被增强。
public class User{
public void add(){};
public void update(){};
}
- Pointcut(切入点):就是我们要拦截那些Joinpoint,通俗将就是实际操作增强的方法,一个类中多个方法都可以被增强,但是实际增强的方法称为切入点。
- Advice(通知增强):增强的逻辑,比如扩展日志功能,这个日志功能就成为增强;就是拦截到连接点之后要做的事情,增强可以分为前置、后置、异常、最终、环绕。
- Aspect(切面):切入点和通知的结合,把增强的应用到具体的方法上面的过程成为切面
- Introduction(引介):一种特殊的通知
- Target(目标对象):代理的目标对象 要增强的类
- Weaving(织入):把增强应用到目标的过程,Avice 应用到Target
- Proxy(代理):一个类被AOP织入增强后,就会产生一个结果代理类