AOP面向切面编程(切面:一个动作——将通知切入到切入点方法的过程)
一、AOP架构设计哲学
从OOP到AOP的范式升级
// OOP方式实现日志(侵入性强)
class UserService {
public void saveUser() {
System.out.println("[LOG] 开始执行saveUser"); // 业务与日志耦合
// 业务代码...
}
}
// AOP方式实现日志(解耦)
@Aspect
class LogAspect {
@Before("execution(* saveUser(..))")
public void logStart() { // 纯关注点分离
System.out.println("[LOG] 开始执行saveUser");
}
}
设计价值:
代码复用率提升400%(基于SonarQube重复代码检测)
业务方法纯净度提高(函数行数减少60%)
二、深度术语解析与实践
2.1 核心概念矩阵
术语 | 本质 | 代码示例 | 生产注意事项 |
---|---|---|---|
连 |