您的位置:首页 > 编程语言 > Java开发

Spring获取bean的步骤

2015-09-02 15:42 330 查看
1 处理&问题

2 去chache里找

3 处理对象A依赖对象B的问题

4 生成bean

4.1 处理方法注入 ------lookup-method

4.2 如果类实现了InstantiationAwareBeanPostProcessor接口就调用其postProcessBeforeInstantiation,如 果返回值不为null,就再调用postProcessAfterInitialization方法,之后直接返回# 等于"短路"了后续的
操作

4.3 doCreatBean

4.3.1 处理工厂方法 factory-method

4.3.2 允许Annotation修改bean 例如 @resource

4.3.3 处理循环依赖

4.3.4 调用postProcessAfterInitialization方法,如果不等于null,直接返回 等于短路后续的操作

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生命周期图



参考资料

http://997004049-qq-com.iteye.com/blog/1729793
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: