当前位置: 首页 > 网络应用技术

春季的AOP原理

时间:2023-03-08 22:27:17 网络应用技术

  这个问题主要研究春季的底层如何实现AOP

  每个人都知道,如果您想实现AOP,则必须先编写注释,所以让我们首先看看该注释所做的事情

  让我们看看这个豆在春天所做的事情知道AOP的原理。

  让我们看看如何获取增强器列表

  您可以看到调用父类以获取列表的方法。实际上,它是空的,然后打电话给您的构建器返回列表。自然,构建器的声音逻辑可以通过代码看到。AspectBeanNames是空的,因此它将遍历整个弹簧容器中的所有对象,然后找到切割类型。发现杆的切面表面中的增强方法,然后返回。可以看到弹簧遍历切割表面类别的每种方法。判断剪切表面上的方法是否不好是不好的,也就是说,该方法被传递以生成对象。不能生成对象。

  后处理后天文总结了此方法中的AOP做两件事

  Spring创建BEAN对象并结束属性分配后,调用后处理后将其拨打,然后AOP组件会做点什么。生命周期过程显示在图中。

  方法调用必要的包裹。如果名称暗示,如果您满足条件,请创建一个代理包装类,

  2.知道如何确定是否需要增强班级。

  生成代理对象时,它还将确定它是使用JDK的动态代理还是CGLIB

  返回增强剂

  我们看到切割方法被包裹在增强方法中

  springboot2.x当前的动态代理是gclib,所以当调用呼叫时

  让我们首先看一下生成拦截器的逻辑。弹簧遍历容器中的所有增强器,以生成拦截器以生成拦截器。转换为拦截器增强器获得的逻辑在方法中。每个不同的切割表面都会产生不同的建议

  生成拦截器后,开始调用继续方法的过程逻辑。

  该增强器的建议是执行过程时的第一个执行是Spring提供的增强。该方法通过螺纹插座保存,然后继续调用处理方法。索引索引增加了,因此取出下一个拦截器链并继续执行。