spring循环依赖和三级缓存关系

spring三级缓存都有那些呢

在这里插入图片描述

三级缓存由来

从下图中可以看到spring从缓存中获得对象的顺序,由此命名三级缓存
在这里插入图片描述

三级缓存作用是什么

一级缓存用来存放已经代理好的对象
二级缓存用来存放 三级缓存中lambda方法创建的对象
三级缓存用来存放一个lambda方法,此方法能创建一个代理对象
总体作用是为了 在解决循环依赖时候确定依赖的对象是同一个代理对象

一级缓存什么时候用

在创建对象成功后将对象将对象放到一级缓存中
在这里插入图片描述

二级缓存什么时候用

将三级缓存中lambda对象创建好的对象放到二级缓存中,然后移除三级缓存中的对象
在这里插入图片描述

三级缓存什么时候用

将lambda表达式放到三级缓存中
在这里插入图片描述
在这里插入图片描述
lambda中通过后置处理器来创建代理对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fenkanghong9779/article/details/108290270