AOP(Aspect Oriented Programming):面向切面编程

OOP(Object Oriented Programming):面向对象编程

面向切面编程:基于OOP基础之上新的编程思想;指在程序运行期间,将某段代码动态的切入到指定方法指定位置进行运行的编程方式

场景:计算器运行计算方法的时候进行日志记录

加日志记录:

  1. 直接编写在方法内部;不推荐,修改维护麻烦,系统的辅助功能和核心功能耦合了 日志记录:系统的辅助功能; 业务逻辑:系统的核心功能
  2. 我们希望的是: 日志模块,在核心功能运行期间,自己动态的加上

可以使用动态代理来将日志代码动态的在目标方法执行前后进行执行

Spring实现了AOP;底层就是动态代理

  1. 可以利用Spring一句代码都不写的去创建动态代理
  2. 而且没有强制要求目标对象必须实现接口

某段代码日志动态的不把代码写死在业务逻辑方法中切入到指定方法加减乘除指定位置方法的开始、结束、异常...进行运行的编程方式

Spring简化了面向切面编程

动态代理

AOP专业术语

AOP简单配置