zoukankan      html  css  js  c++  java
  • spring中相互依赖的问题

    针对于使用注解的方式进行依赖注入。

    场景:A类中需要注入B类的实例对象,B类中需要注入A类的实例对象

    * spring容器存在三级缓存   一级   二级   三级   先从一级缓存开始获取
    * 三级 singletonFactories : 单例对象工厂的cache 其中的对象还没有初始化
    * 二级 earlySingletonObjects :提前暴光的单例对象的Cache 。其中的对象可能只有部分属性被赋值【用于检测循环引用,与singletonFactories互斥】
    * 一级 singletonObjects:单例对象的cache 其中的对象完成初始化
    *
    * 例如: 在创建了A对象之后,singletonFactories三级缓存中就存在此对象,虽然还并不完整(提前暴露)。
    * 然后会进行初始化,为属性B赋值,此时在三个缓存中找不到该对象(假如该对象还没有创建),
    * 然后对于B进行实例化并且初始化,初始化的时候发现需要依赖A对象,
    * 可以从三级缓存中取到该对象并且进行赋值,然后将其放入二级缓存 earlySingletonObjects,
    * B对象初始化完成,就会放入到一级缓存singletonObjects,
    * 接下来就会继续进行A对象的初始化,可以从二级缓存中获取到A对象,从一级缓存中找到B对象进行赋值。
    *
    * A对象初始化完成之后,B对象中指向A对象的引用所对应的对象就是完整的A对象
  • 相关阅读:
    Tensorflow卷积接口总结
    《MuseGAN: Multi-track Sequential Generative Adversarial Networks for Symbolic Music Generation and Accompaniment》论文阅读笔记
    核函数
    KCF跟踪算法
    岭回归、lasso
    C++的命令行参数(gflag)
    Python的命令行参数(argparse)
    size_t为什么重要
    linux下caffe的命令运行脚本
    卡尔曼滤波
  • 原文地址:https://www.cnblogs.com/joeking/p/13141332.html
Copyright © 2011-2022 走看看