AOP

  1. 初识AOP
  2. AOP相关概念

参考文章:https://blog.csdn.net/q982151756/article/details/80513340

初识AOP

AOP:Aspect Oriented Programming 面向切面的编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 –百度百科

首先看一个例子:

我们在举办一个活动,在用户参与活动之前首先要进行活动的有效性检测,例如,检测活动是否还在进行当中、检测该活动是否需要用户登录等等。

  • 按照最普通的方法,有下面两个过程,这两个过程的每一步代码都要各自编写一遍:

  • 然后,我们会想,把中间的相同的部分合并在一起,这样就可以大大减少我们的编码工作量,这就是面向对象的思想OOP

  • 而上面这种方法的缺点就是:我的原来的程序和红框里面的程序仍然存在耦合,设想,假如“第一个开始程序”这里面要调用100个接口,另一个也要调用100个接口,那么这个类就会变得特变复杂,当我们想要修改一些东西,效率就会变低。而下面这张图就解决了这个问题,可以把方法从外面注入接口调用的地方,这样接口执行不要关心具体的业务,而不需要关注其他非该接口关注的逻辑或处理。

这就是面向切面的思想AOP

AOP相关概念

  • 连接点(Join Point):所有可能的需要注入切面的地方。如方法前后、类初始化、属性初始化前后等等。
  • 切点(Poincut):需要做某些处理(如打印日志、处理缓存等等)的连接点。
  • 通知(Advice):定义在什么时候做什么事情。
  • 切面(Aspect):通知+切点的集合,定义在什么地方什么时间做什么事情。
  • 引入(Introduction):允许我们向现有的类添加新方法属性。这不就是把切面(也就是新方法属性:通知定义的)用到目标类中吗
  • 目标(Target):引入中提到的目标类,也就是要被通知的对象。也就是真正的业务逻辑,他可以在毫不知情的情况下,被咱们织入切面。而自己专注于业务本身的逻辑。
  • 织入(Weaving):把切面应用到目标对象来创建新的代理对象的过程。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2470290795@qq.com

文章标题:AOP

文章字数:725

本文作者:runze

发布时间:2020-03-05, 21:00:23

最后更新:2020-03-06, 00:18:31

原始链接:http://yoursite.com/2020/03/05/Spring/AOP/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏