AOP术语
理解AOP需要掌握以下核心术语,这些概念贯穿AOP编程始终。
核心术语
切面(Aspect)
横切关注点的模块化封装,包含通知和切入点定义。
Java
@Aspect
@Component
public class LoggingAspect {
// 切面 = 通知 + 切入点
}
连接点(Join Point)
程序执行过程中的特定点,如方法调用、异常抛出等。在Spring AOP中,连接点特指方法执行点。
Java
// 所有方法执行都可以是连接点
public void save() {} // 连接点
public void delete() {} // 连接点
切入点(Pointcut)
匹配连接点的表达式,定义通知在哪些位置执行。
Java
@Pointcut("execution(* com.example.service.*.*(..))")
public void serviceLayer() {}
通知(Advice)
切面在特定连接点执行的动作,分为5种类型:
| 通知类型 | 执行时机 | 注解 |
|---|---|---|
| 前置通知 | 方法执行前 | @Before |
| 后置通知 | 方法执行后(无论成功失败) | @After |
| 返回通知 | 方法成功返回后 | @AfterReturning |
| 异常通知 | 方法抛出异常后 | @AfterThrowing |
| 环绕通知 | 包裹方法执行 | @Around |
目标对象(Target Object)
被通知增强的对象,即业务逻辑所在的对象。
Java
@Service
public class UserService {
// 被AOP增强的目标对象
public void save() {}
}
代理(Proxy)
AOP框架创建的对象,包含目标对象的引用并负责调用通知。
织入(Weaving)
将切面应用到目标对象创建代理的过程。Spring使用运行时织入。
术语关系图
text
切面(Aspect)
├── 切入点(Pointcut) ──匹配──> 连接点(Join Point)
└── 通知(Advice) ──织入──> 目标对象(Target Object)
↓
代理(Proxy)
要点总结
- 切面 = 通知 + 切入点,是横切关注点的封装
- 连接点是程序执行的特定点,Spring AOP指方法执行点
- 切入点用于匹配连接点,决定通知执行位置
- 通知定义了在切入点执行的具体动作
- 织入是将切面应用到目标对象的过程
📝 发现内容有误?点击此处直接编辑