1、初始化bean; 调用createBeanInitize; 就是在堆里面开辟一个空间、属性都还是默认值
2、属性注入; 分两部分别自定义属性赋值; 容器属性赋值(比如ApplicationContent、BeanFacrty)
自定义属性赋值--- 调用
容器属性赋值--- 》 执行invoidMethodAware方法,检查是否实现Aware接口、如果实现并及逆行赋值
此时bean初始化已经完成
3、调用BeanPostProcessor前置处理
4、检查是否实现initializingBean来决定是否调用afterPropertiesSet方法
5、检查是否又自己定义的init-method方法,有则执行;
6、调用BeanPostProcessor后置处理--- 给bean对象进行扩展比如aop;
7、调用getBean获取对象
8、检查是否实现DisponsebleBean接口进行销毁对象