如何分析Spring AOP设计与原理

技术如何分析Spring AOP设计与原理这篇文章给大家介绍如何分析Spring AOP设计与原理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java程序执行——方法调用在学java基础我们就知道

本文介绍了如何分析Spring AOP的设计和原理。内容非常详细,有兴趣的朋友可以参考一下,希望对你有帮助。

Java程序执行——方法调用

从java的基础知识中我们知道,java程序总是从主方法开始运行。当它开始运行时,JVM会创建一个主线程,主线程会以main方法为入口开始执行代码。从线程栈的角度来看,JVM处理Java程序的基本单元是方法调用(宏观视图)。当我们使用面向对象解决问题时,我们考虑如何根据执行顺序通过方法调用来实现我们的业务逻辑。如果从虚拟机线程栈的角度考虑Java程序执行,那么你会发现程序运行的整个过程就是方法调用的过程。

连接点

我们把上面的方法调用按照执行流程排列在线程栈中,会出现类似下图的图:

如何分析Spring  AOP设计与原理

根据程序运行的顺序,我们可以将方法调用排成一行。每个方法调用都可以被视为这条线上的一个节点。在AOP术语中,这个节点被称为连接点,即连接点。一个Java程序的运行过程就是几个连接点依次连接并执行的过程。

00-1010 AOP(面向方面编程)从另一个角度考虑整个程序。AOP把每一个方法调用,也就是连接点作为编程的入口,并为方法调用编程。从逻辑上讲,执行相当于之前按照时间轴垂直执行的程序的水平切入。相当于把之前的程序水平切割成几个方面,也就是Aspect。每个小平面称为一个切平面。

如何分析Spring  AOP设计与原理

如何分析Spring  AOP设计与原理

因为方面本质上是每个方法调用,选择方面的过程实际上就是选择方法的过程。然后,选定的方面在AOP术语中称为点切割。连接点切割实际上是从所有连接点中选择您感兴趣的连接点的过程。

如何分析Spring  AOP设计与原理

00-1010既然AOP程序有方法调用,问题就来了。AOP如何捕获方法调用?也就是说,AOP如何知道当前运行的是哪种方法?为了找出这个问题,你必须了解设计模式中的代理模式!什么是代理模式?例子:真正的例子对象是迪丽热巴第一。迪丽热巴被要求在没有火的时候去跳舞,她自己去,相当于之前没有经纪人对象的时候。现在有了代理对象就意味着她有了代理。如果迪丽热巴想跳舞,她必须先联系经纪人。我们假设在我们的Java代码中,代理对象是通过代理模式为实例对象创建的,对这些实例对象的访问必须通过代理,所以带有代理对象(代理角色)的Java程序执行流程会变得稍微复杂一些。

如何分析Spring  AOP设计与原理

由于Spring的代理层可以检测您对实例对象进行的每个方法调用,因此Spring有机会在这个代理的过程中插入Spring自己的业务代码。

这里将分享如何分析Spring AOP的设计和原理。希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132967.html

(0)

相关推荐

  • 一学期是一年还是半年,一学年、是指一学期、还是一年

    技术一学期是一年还是半年,一学年、是指一学期、还是一年一学年是指一年一学期是一年还是半年。 一学年即从当年9月1日到次年的8月31日,暑假是学年分界线,一学年分为2个学期,寒假是学期分界线。 学校的教学年度。一般从秋季始

    生活 2021年10月29日
  • 博士今义,“博士”一词的古今异义怎么讲

    技术博士今义,“博士”一词的古今异义怎么讲博士博士今义,古义为官名。秦汉时是掌管书籍文典、通晓史事的官职。 今义为学术上专通一经或精通一艺、从事教授生徒的官职。如明代初期,朱允炆曾封方孝孺为“文学博士”等。 “博士”最早

    生活 2021年10月25日
  • 学习Python有什么用

    技术学习Python有什么用这篇文章主要讲解了“学习Python有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“学习Python有什么用”吧!理由一:Python真

    攻略 2021年10月21日
  • 志趣的意思,你是如何理解志趣相投的

    技术志趣的意思,你是如何理解志趣相投的臭味相投的常见,比如麻将馆里的人,上了牌桌都成了相差无几的德性志趣的意思。志趣相投的人,要么是做同一样工作,就是团队精神吧。要么是经商共赢的人,就是齐心协力吧。但是越有文化知识的人越

    生活 2021年10月19日
  • 11g RAC和增加日志组大小和数量

    技术11g RAC和增加日志组大小和数量这篇文章给大家介绍11g RAC和增加日志组大小和数量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。备库关闭日志应用:SQL> select status f

    攻略 2021年11月29日
  • 9、gRPC

    技术9、gRPC 9、gRPC之前 protobuf 时安装过,不需安装快速开启 grpc 服务
    新建目录 testGrpc 。以及testGrpc/service 和testGrpc/clientte

    礼包 2021年12月5日