getBean结束之后执行SmartInitializingSingleton.afterSingletonsInstantiated方法
getSingleton
返会到getSingleton
doCreateBean
addSingletonFactory循环引用获取早期的bean引用放进三级缓存
createBean
createBeanInstance创建bean定义
getBean
doGetBean(End)
finishBeanFactoryInitialization
preInstantiateSingletons判断是否为FactoryBean 是的话就判断是否加载
循环依赖时会获取到bean
initializeBean初始化
populateBean填充属性