文章目录
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry这个类当中有四个缓存
1. singletonObjects(ConcurrentHashMap)
保存BeanName和创建的bean实例之间的关系,bean name->bean instance。
2. singletonFactories(HashMap)
保存BeanName和创建bean的工厂之间的关系,bean name -> ObjectsFatory
3. earlySingletonObjects(HashMap)
也是保存BeanName和创建bean实例之间的关系,与singletonObjects之间的区别在于,当一个单例bean被放到earlySingletonObjects里面之后,该bean就可以通过getBean()方法获取到了(虽然只是早期对象,即还在创建过程中。目的是解决循环依赖的问题)
4. registeredSingletons(LinkedHashSet)
保存当前所有已注册的bean,这里为什么要用LinkedHashSet?