bean的加载-获取单例和准备创建bean

56 篇文章 0 订阅
34 篇文章 0 订阅
1、获取单例
如果缓存中不存在已经加载的单例bean,就需要重头开始bean的加载过程,在spring中AbstracBeanFactory的 getSingleton的重载方法实现了bean的加载
1.1、检查缓存是否已经加载过,spring3.2是直接使用synchronized锁定需要同步的变量,4.0之后
Object singletonObject = this.singletonObjects.get(beanName);实例了一个对象去操作
1.2、检查 earlySingletonObjects里面是否保存beanName和bean实例之间的关系
1.3、如果还是没有,则需要根据beanName创建一个ObjectFactory,里面用于保存beanName和bean工厂之间的关系 beanName,ObjectFactory之间的关系,然后把值记录到earlySingletonObjects,同时移除singletonFactories里面beanName之间的关系

2、准备创建bean
在spring中真正可以干活的函数是以do开头的,对于createBean也是如此,只是做一些准备工作
2.1、根据设置的class属性或者根据className来解析class


2.2、对override属性进行标记和验证


2.3、应用初始化前的处理器,解析指定bean是否存在初始化前的短路操作
2.4、创建bean

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值