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
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
相关文章推荐
- Struts2 part 2:Action的编写方式
- SpringMVC拦截配置
- java工厂设计模式
- JAVA操作Excel文件
- 从源码角度分析native层消息机制与java层消息机制的关联
- 注释驱动的 Spring cache 缓存介绍
- MyEclipse下配置mysql驱动的方法
- apktool + eclipse 动态调试无源码apk
- annotation-driven
- Java学习之排序
- MyEclipse 关闭debug
- Spring中的AOP——在Advice方法中获取目标方法的参数
- 集合框架-工具类(java基础)
- Spring3.1 Cache注解
- 成为更高效的Java开发人员要用到的开发工具
- Spring Cache 介绍
- Java轻量级锁
- Java NIO:NIO概述
- databus编译: Execution failed for task ':databus-core:databus-core-impl:compileJava'.
- J2EE、J2SE、J2ME、JDK各个击破(概念级)