-
prepareRefresh() 首先检查环境,查看是否符合要求(面包店开店准备)比如:选用哪个日志框架
- obtainFreshBeanFactory() 获得beanFactory (学习怎么做蛋糕)
- prepareBeanFactory() 准备好beanFactory(向其中放入ConfigBeanFactoryPostProcessor)
-
postProcessBeanFactory(beanFactory) 为初始化后的数据增加后续处理办法,向
beanFactoryPostProcessors添加对象
-
invokeBeanFactoryPostProcessors(beanFactory);
bean工厂已经基本好了,后置处理器
-
registerBeanPostProcessors(beanFactory) 注册后置处理器
-
finishBeanFactoryInitialization(beanFactory); 完成实例化
finishBeanFactoryInitialization(beanFactory); 在这一步分为以下几个部分
- 创建,根据拿到的beanFactory的值,使用反射创建对象
- 依赖注入,属性填充
- init 初始化 对于接口要判断是否来自于该接口(如果实现了该接口,则可以强转为接口类型) beforeInitialization,init(),afterInitialization,这三个是init的流程.