为什么要使用三级缓存,二级缓存不能解决吗?

提问者:帅平 问题分类:面试刷题

为什么要使用三级缓存,二级缓存不能解决吗?

1 个回答
Rae
Rae 管理员

可以,三级缓存的功能是只有真正发生循环依赖的时候,才去提前生成代理对象,否则只会「创建一个工厂并将其放入到三级缓存」中,但是不会去通过这个工厂去真正创建对象。

如果使用二级缓存解决循环依赖,意味着所有 Bean 在实例化后就要完成 AOP 代理,这样「违背了 Spring 设计的原则」,Spring 在设计之初就是在 Bean 生命周期的最后一步来完成 AOP 代理,而不是在实例化后就立马进行 AOP 代理。

发布于:2个月前 (10-20)
我来回答