bean的加载
2020-09-10 13:43:52 0 举报
bean的加载过程
作者其他创作
大纲/内容
bean的scope类型
加载完所有依赖bean
return
若Instance为单例,先从缓存中看看有没有,没有的话使用factory.getObject()创建对象,然后进入BeanPostProcessors执行,创建完成后放入缓存中并返回object;如果不是单例,则直接创建后进入BeanPostProcessors环节,并返回object。
NO
YES
Singleton
可以发现主要是createBean()
parentBeanFactory != null && !containsBeanDefinition(beanName)
先加载依赖的所有Bean(dep)
FALSE
主要是判断返回的Instance是否和想要的一致(想要的和返回的是普通bean还是FactoryBean),规则如下:-----------------------------------------------Instance | Expected | action-----------------------------------------------Bean | FacBean | Exception-----------------------------------------------Bean | Bean | return-----------------------------------------------FacBean | FacBean | return-----------------------------------------------FacBean | Bean | getObjectFromFactoryBean()
doGetBean(xxx)
transformedBeanName()
getObjectFromFactoryBean()
类型转换为目标类型
返回是否为NULL
Others
factory.getObject()
Prototype
forEach:getBean(dep)
转换bean的名字,比如从&a转为a,将alias转为最终name
TRUE
0 条评论
下一页