getSingleton 检测单例缓存中是否有已构建的单实例 bean, 有就直接返回这个单例 bean
- /** Cache of singleton objects: bean name to bean instance. */
- private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);
所有实例过的单例 bean 都会在这注册, 检查的时候还会判断当前 bean 有没有在创建过程中. 如果有的话, 会在
earlySingletonObjects
去获取, 要是这个还是没有获取到的话, 会去 singletonFactories 这个 map 中去获取, 要是获取到的话就删除 singletonFactories 中的 bean, 转而在
earlySingletonObjects
这个 map 里面去注册
来源: https://www.cnblogs.com/wzqshb/p/11774767.html