1.obtainFreshBeanFactory()
loadBeanDefinitions()->doLoadBeanDefinitions()->registerBeanDefinitions()->doRegisterBeanDefinitions()->parseBeanDefinitions()->parseDefaultElement()->processBeanDefinition()->registerBeanDefinition() => (beannames beanDefinitionMap)
2.invokeBeanFactoryPostProcessors(bean 实例化前,修改bean定义)
PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(this.getBeanFactoryPostProcessors())->invokeBeanDefinitionRegistryPostProcessors() invokeBeanFactoryPostProcessors()
3.registerBeanPostProcessors(bean实例化,执行初始化方法前后,能修改bean)
PostProcessorRegistrationDelegate.registerBeanPostProcessors()->registerBeanPostProcessors()
这边只是注册beanpostprocessor,postProcessBeforeInitialization()、postProcessAfterInitialization()在bean初始化前后执行
4.finishBeanFactoryInitialization(实例化所有剩余非懒加载单例bean)
beanFactory.preInstantiateSingletons()->this.getBean()->this.doGetBean()->
this.createBean()->this.doCreateBean()->this.populateBean()->this.initializeBean()
解决循环依赖 三级缓存