AOP 全称 Aspect-Oriented Programming 面向切面编程。
比如说原来的功能模块是这样的:

现在要在此基础上加入日志记录、安全检查,并且希望以面向对象的方式集成到整个系统中去,然后我们就找到了 AOP。
使用 AOP,我们可以对类似于 Logging 和 Security 等需求进行模块化组织,简化系统需求和实现之间的对比关系,进而使得整个系统的实现更具模块化。
最终达到的效果是这样的:

实现 AOP 的方式有 静态代理、动态代理以及动态字节码生成,Spring AOP 采用了 动态代理和动态字节码生成。
网友评论