1 处理&问题
 2 去chache里找
 3 处理对象A依赖对象B的问题
 4 生成bean
   4.1 处理方法注入 ------lookup-method
   4.2 如果类实现了InstantiationAwareBeanPostProcessor接口就调用其postProcessBeforeInstantiation,如果返回值不为null就调用postProcessAfterInitialization方法,如果还是不为null就返回,省略后面的doCreatBean方法(等于短路了后面),如果postProcessBeforeInstantiation返回的就是null,那就继续往下走,看doCreateBean
   4.3 doCreatBean
       4.3.1 处理工厂方法 factory-method
       4.3.2 允许Annotation修改bean 例如 @resource
       4.3.3 处理循环依赖
 4.3.4 调用postProcessAfterInitialization方法,如果返回false,程序就直接返回 等于短路后续的操作
 4.3.5 处理 @Autowire
 4.3.6 属性注入 @resource
 4.3.7 类型转换 调用InstantiationAwareBeanPostProcessor的postProcessPropertyValues方法 其实就是将字符串转换为需要的对象如把 字符串"2015-12-12"转成date型的对象
       4.3.8 处理 XXAware接口的实现
       4.3.9 处理 postProcessBeforeInitialization
       4.3.10 处理 InitializingBean的afterPropertiesSet
       4.3.11 处理 custom Init方法
       4.3.12 处理 postProcessAfterInitialization
 
5 存入cache
6 容器关闭时,销毁对象(仅仅适用于Singleton对象)
 
 其中,4.3.4-4.3.7是属性注入
 4.3.4-4.3.12 都可作为bean的生命周期考虑
 
看一个网上流传甚广的bean生命周期图

////////////
以下为2016-04-20增加
其实getBean部分,主要可以分为3个部分
1-InstantiationAwareBeanPostProcessor 的短路与设值
2-XXXAware的处理
3-初始化BeanPostProcessor的Before与after,还有中间的init-method方法
而这三个部分都是BeanPostProcessor
InstantiationAwareBeanPostProcessor 实现了BeanPostProcess
对xxxaware的处理是借用的ApplicationContextAwareProcessor,它也实现了BeanPostProcess
以上为2016-04-20增加
////////////
 
参考资料
http://997004049-qq-com.iteye.com/blog/1729793










