关键的数据结构 singletonObjects:用于保存BeanName和创建bean实例之间的关系,bean name -> bean instance singletonFactories:用于保存BeanName和创建bean的工厂之间的关系,bean name -> ObjectFactory earlySingletonObjects:用于保存BeanName和创建bean实例之间的关系,当一个单例bean被放到这里面后,那么当bean还在创建过程中,就可以通过getBean方法获取到了,其目的就是用来检测循环引用。 registeredSingletons:保存当前所有已注册的bean。