经过查看源代码发现IOC容器中的bean实例(不知道是不是所有的bean)是存储在一个DefaultSingletonBeanRegistry类实例的一个Map类型的属性当中。

下面是DefaultSingletonBeanRegistry类的定义:

//类定义
public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry {

下面是这个类中的一个属性:

/** Cache of singleton objects: bean name --> bean instance */
//生成的bean将存储在这个属性中。初始容量为256的Map对象。
private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(256);

下面是DefaultSingletonBeanRegistry类的一个方法,这个方法添加bean实例到一个Map属性中

/**
* Add the given singleton object to the singleton cache of this factory.
* <p>To be called for eager registration of singletons.
* @param beanName the name of the bean //
* @param singletonObject the singleton object
*/ protected void addSingleton(String beanName, Object singletonObject) {
synchronized (this.singletonObjects) {
       //singletonObjects 是DefaultSingletonBeanRegistry类的一个Map类型的字段。把bean实例都添加到了Map对象中。
this.singletonObjects.put(beanName, (singletonObject != null ? singletonObject : NULL_OBJECT));
this.singletonFactories.remove(beanName);
this.earlySingletonObjects.remove(beanName);
this.registeredSingletons.add(beanName);
}
}

最新文章

  1. (转) Artificial intelligence, revealed
  2. RVM 多版本Ruby管理-Gentoo
  3. Bzoj1449 [JSOI2009]球队收益
  4. Oracle中定义package以及存储过程的使用
  5. dtrace4linux
  6. careercup-中等难度 17.4
  7. 【深度学习系列3】 Mariana CNN并行框架与图像识别
  8. 使用react-native做一个简单的应用-02项目搭建与运行
  9. PHP的简单易懂文件管理,可实现基本功能
  10. android.util.Log常用方法
  11. 如何获取Azure Storage Blob的MD5值
  12. PyCharm 如何安装python第三方库及插件
  13. SQLServer复习文档1(with C#)
  14. pcre和正则表达式的误点
  15. Android APP应用启动页白屏(StartingWindow)优化
  16. as项目找不到id
  17. Spring配置从配置文件读取属性值
  18. Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken
  19. Javascript高级编程学习笔记(12)—— 引用类型(1)Object类型
  20. python联系题1

热门文章

  1. golang获取变量数据类型
  2. 三:Springboot整合Redis
  3. 浅谈WebService之JAX-RS与spring整合
  4. Spring Security +Oauth2 +Spring boot 动态定义权限
  5. Java温故而知新(1)集合类
  6. 为什么分布式一定要有redis?(转)
  7. 三大图表库:ECharts 、 BizCharts 和 G2,该如何选择?
  8. windows 2003 安装 MVC 环境 404错误,无法找到该页
  9. JSON对象的两个方法
  10. push本地代码到github发生错误的解决办法