一、什么是AOP?
Aop的初衷:
AOP的应用场景:
支持AOP的编程语言很多~
通俗的说:
抽象:抽取特别像的东西。
如图,是一种横向的抽取,所以叫做面向切面。
下面两个图简单的体现了AOP的原理↓↓↓
在软件开发中,散布于应用中多处的功能被称为横切关注点(cross-cutting concern)。通常来讲,这些横切关注点从概念上是与应用的业
务逻辑相分离的(但是往往会直接嵌入到应用的业务逻辑之中)。把这些横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的问题。
这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
AOP是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效补充。
使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。
从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。
这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来的效果。
二、AOP术语?
三、AOP实现者?
四、代理模式?
代理模式分为静态代理和动态代理,详见:https://www.jianshu.com/p/f56e123817b5