Spring Bean的加载步骤值得研究下。
1. 转换对应的BeanName
从传入的beanName获取最终的beanName.
2. 尝试从缓存中加载单例
尝试从缓存中加载,如果没有,从singletonFactories中加载
原则:不能在bean创建完成后就将创建的ObjectFactory提前曝光到缓存中(为了避免循环依赖)
3. bean的实例化
从缓存种获取的只是bean的原始状态,需调用工厂获取bean的方法。
4. 原型模式的依赖检查
只有单例模式才会尝试解决循环依赖。
5. 检测parentBeanFactory
缓存没数据则直接从父类工厂加载
6. XML的GenerateBeanDefinition,先获取RootBeanDefinition
7. 寻找依赖
先初始化依赖、
8. 针对不同的scope进行创建
默认singleton
本文详细介绍了Spring框架中Bean的加载过程,包括BeanName转换、单例缓存加载、实例化、依赖注入等关键步骤,并解释了不同作用域下Bean的创建方式。
6746

被折叠的 条评论
为什么被折叠?



