AOP问题,提前AOP解决

  • 二级缓存 earlySingletonObjects
    保证不完整的Bean是单例的
    解决循环依赖问题
    但无法解决AOP循环依赖问题
  • 三级缓存 singletonFactories
    在Bean初始化一开始的时候就将lambda表达式存入三级缓存
    保存lamada表达式,可以根据lamada表达式判断,bean是否进行AOP
    如果进行AOP则将代理对象放入二级缓存
    如果没有进行AOP则将依赖注入过的普通对象放入二级缓存
    让解决循环依赖的问题变得更加方便