一、什么是AOP?

Aop的初衷:

AOP的应用场景:

支持AOP的编程语言很多~

通俗的说:

抽象:抽取特别像的东西。

如图,是一种横向的抽取,所以叫做面向切面。

下面两个图简单的体现了AOP的原理↓↓↓

什么是AOP面向切面编程思想-LMLPHP

在软件开发中,散布于应用中多处的功能被称为横切关注点(cross-cutting concern)。通常来讲,这些横切关注点从概念上是与应用的业
务逻辑相分离的(但是往往会直接嵌入到应用的业务逻辑之中)。把这些横切关注点与业务逻辑相分离正是面向切面编程(AOP)所要解决的问题。

什么是AOP面向切面编程思想-LMLPHP

这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

AOP是Spring提供的关键特性之一。AOP即面向切面编程,是OOP编程的有效补充。

使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。

从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。

这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了 将不同的关注点分离出来的效果。

二、AOP术语?

三、AOP实现者?

四、代理模式?

什么是AOP面向切面编程思想-LMLPHP

代理模式分为静态代理和动态代理,详见:https://www.jianshu.com/p/f56e123817b5

05-26 08:37