全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-18 5 分钟 ✍️ juanwangdev

AOP概念

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,用于解决横切关注点的代码分散问题。

核心定义

AOP通过切面将横切关注点(如日志、事务、安全)从业务逻辑中分离出来,实现关注点分离。

解决的问题

传统OOP中,横切关注点代码散落在多个模块中:

Java
// 业务方法中混杂日志、事务等代码
public void transfer() {
    log.info("开始转账");        // 日志代码
    transaction.begin();          // 事务代码
    try {
        // 核心业务逻辑
        accountService.debit();
        accountService.credit();
        transaction.commit();     // 事务代码
    } catch (Exception e) {
        transaction.rollback();   // 事务代码
        log.error("转账失败");     // 日志代码
    }
    log.info("转账完成");         // 日志代码
}

AOP将这些横切代码抽取为独立切面:

Java
// 业务方法只关注核心逻辑
public void transfer() {
    accountService.debit();
    accountService.credit();
}

核心思想

特性说明
分离关注点横切逻辑与业务逻辑解耦
声明式编程通过配置或注解声明切面
非侵入式不修改原有业务代码

与OOP的关系

AOP是OOP的补充,而非替代:

  • OOP:解决纵向业务逻辑划分
  • AOP:解决横向横切关注点抽取

要点总结

  1. AOP全称Aspect-Oriented Programming,即面向切面编程
  2. 核心目的是分离横切关注点,提高代码模块化
  3. AOP是OOP的补充,两者配合使用
  4. 常见应用场景:日志、事务、权限、缓存等

📝 发现内容有误?点击此处直接编辑

← 上一篇 AOP术语
下一篇 → AOP通知类型
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库