美文网首页spring面试题
2)面试问烂的 Spring AOP 原理(1)

2)面试问烂的 Spring AOP 原理(1)

作者: hedgehog1112 | 来源:发表于2019-12-23 11:34 被阅读0次

    一、简单说 AOP 设计:

    每个 Bean 都会被 JDK 或Cglib 代理。取决于是否有接口。

    每个 Bean 有多个“方法拦截器”。拦截器分为两层,层由 Spring 内核控制流程,层拦截器是用户设置,就是 AOP。(创建代理时创建)

    当代理方法被调用时,先经过外层,根据方法信息判断该执行哪些“内层拦截器”。内层就是职责连的设计。

       AOP 分2 个部分:代理创建;调用。com.interface21.aop包下。

    二、代理的创建

    (1)创建代理工厂,需:拦截器数组(尾部再加默认拦截器,调最终目标方法),目标对象接口数组,目标对象

    (2)调getProxy方法时,根据接口数量大余 0 条件返回代理对象(JDK or Cglib)。

    三、代理的调用

    (1)对代理对象调用时,触发外层拦截器。

    (2)根据配置信息,创建内层拦截器。创建过程中,根据表达式判断,当前拦截是否匹配拦截器。(拦截器链是职责链模式)

    (3)最后,触发尾部拦截器,调用目标方法,返回

    UML 图 调用过程

    相关文章

      网友评论

        本文标题:2)面试问烂的 Spring AOP 原理(1)

        本文链接:https://www.haomeiwen.com/subject/vqxznctx.html