AOP基本运行流程

AOP是如何利用代理实现功能的织入,想要了解AOP的基本运行流程,那我们首先得知道它的一些基本概念。

基本概念

  • 关注点

        就是所关注的公共功能,比如像事务管理,就是一个关注点。表示 要做什么

  •  连接点(Joinpoint)

        一个连接点总是代表一个方法的执行。表示“在什么地方做”。

  • 通知(Advice)

        通知有各种类型,其中包括“around”、“before”和“after”等通知。许多AOP框架,包括Spring,都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链。表示 “具体怎么做”

  • 切面/方面(Aspect)

        一个关注点的模块化,这个关注点可能会横切多个对象。 综合表示“ 在什么地方,要做什么,以及具体如何做”

  • 切入点(Pointcut)

      一般是配制,切入点表达式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。简单来说就是“很多连接点的集合”

  • 目标对象(Target Object)

       Spring AOP是通过运行时代理实现的,这个对象永远是一个 被代理(proxied) 对象

  • AOP代理(AOP Proxy)

      简单来说就是动态代理的实现。

  •  织入(Weaving)

        把切面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象的过程。也就是说织入是一个过程

AOP基本运行流程

​​​​​​​        在下图中,目标对象就是我们的核心业务功能类。我们需要在3个方法处理添加一些公共功能,在AOP中我们需要添加的这些公共功能就是上面我们所说的关注点。

        要利用切面,我们不直接在3个方法进行调用,将方法进行抽取出来分离关注点,被通知的对象Advice。

        spring会根据配制文件中配制的切入点去匹配target中方法的调用,从而知道哪些方法需要增加。

        当客户端调用这些方法时,直接调用的是代理对象的方法。

        AOP通过配制文件中配制的切入点与Advice,从而找到指定方法需要增强的功能。

        最终通过代理将Advice动态织入到指定方法。

       

猜你喜欢

转载自blog.csdn.net/qq_27052085/article/details/86689217
今日推荐