参考答案
结论:AOP(面向切面编程)将日志、事务等横切关注点与核心业务逻辑分离,通过动态织入实现模块化。核心要点:切面Aspect封装横切逻辑;切点Pointcut定义植入位置(如方法执行);通知Advice包括前、后、环绕等;连接点JoinPoint是可植入处。原理:Spring AOP基于动态代理,有接口用JDK代理,无接口用CGLIB字节码增强;AspectJ则在编译期织入。对比OOP:OOP通过继承组合复用纵向逻辑,AOP处理横向散布代码,减少重复、便于维护。例如统一鉴权只需在切面定义规则。