3.0.1-加载bean流程图
2014-10-28 14:54:28 182 举报
Spring ioc 加载Bean
作者其他创作
大纲/内容
类型转换
针对不同的scope进行bean的创建
name参数可能是别名或者FactoryBean,需要一系列的解析
缓存中加载的bean是否为空
getObjectForBeanInstance( ... ) : Object
3.1-尝试从缓存中加载单例
end
3.3-根据单态模式创建bean
创建bean
createBean( beanName... ) : Object
判断bean的模式
转换为RootBeanDefinition
bean的实例化
createBean( ... ) : Object
Y
getBean( beanName ) : Object
getObjectForBeanInstance(...) : Object
检测是否到parentBeanFactory父工厂加载bean
是否存在依赖bean
原型模式的依赖检查
寻找bean的依赖
getMergedLocalBeanDefinition( Str beanName ):RootBeanDefinition
parentBeanFactory != null && containsBeanDefinition( beanName )
优先加载依赖的bean
原型模式
transformedBeanName( String name )
转换对应的beanName
N
其它scope模式
3.1-getSingleton( String name )
加载bean开始
指定的scope上实例化bean
3.4-createBean( ... ) : Object
isPrototypeCurrentlyInCreation( Str name )
rootBeanDefinition.getDependsOn( Str beanName ) : String[]
3.2-bean的实例化
单态模式
0 条评论
下一页