spring循环依赖---碎片化知识整理

  • 三级缓存分别保存什么对象
    1.成品对象
    2.半成品对象
    3.lambda表达式
  • 如果只使用一级缓存行不行
    不行。成品对象与半成品对象会放到一起,在进行对象获取的时候有可能获取到半成品对象。
  • 如果只有二级缓存行不行
    getSingleton
    doCreateBean
    只有二级缓也可以解决依赖问题。但是添加了AOP之后就无法实现。
    整个容器中对象是单例的,不能有同名对象的代理对象和非代理对象。要保证容器中只有一个对象供外部调用,所以三级缓存完成了代理对象替换非代理对象的工作,遵从单例模式。如果没有AOP,二级缓存就可以。但是spring框架无法判断。所以走整体流程

你可能感兴趣的