1.ResouceLoader加载配置信息
2.BeanDefintionReader解析配置信息,生成一个一个的BeanDefintion
3.BeanDefintion由BeanDefintionRegistry管理起来
4.BeanFactoryPostProcessor对配置信息进行加工(也就是处理配置的信息,一般通过PropertyPlaceholderConfigurer来实现)
5.实例化Bean
6.如果该Bean配置/实现了InstantiationAwareBean,则调用对应的方法
7.使用BeanWarpper来完成对象之间的属性配置(依赖)
8.如果该Bean配置/实现了Aware接口,则调用对应的方法
9.如果该Bean配置了BeanPostProcessor的before方法,则调用
10.如果该Bean配置了init-method或者实现InstantiationBean,则调用对应的方法
11.如果该Bean配置了BeanPostProcessor的after方法,则调用
12.将对象放入到HashMap中
13.最后如果配置了destroy或者DisposableBean的方法,则执行销毁操作
作者:Java3y
链接:https://juejin.im/post/5c525968e51d453f5e6b744b