spring bean 生命周期

1.循环依赖

 2.生命周期

    getbean  ("");开始看

    abstractbeanapplicationcontext.getbean()

      1、 abstractbeanfacoty.dogetbean()

         singletonobjects 单列缓存  earlysingletonobejcts  singlefactois  多级缓存 (解决 循环依赖)

        2.1ransforbeanname 解析别名

        2.2 getsington  首先尝试去我们的 缓冲池获取bean 由于第一次获取不到

         2.3  isPrototypeCurrentlyInCreation 如果循环依赖出现不是单例的 就抛出异常

        2.4 getParentBeanFactory 如果有父工厂  就由父工厂进行加载

       2.5 getMergedLocalBeanDefinition 合并 bean定义

       2.6检查 当前bean  是不是抽象的

       2.7  getDependsOn

       2.8

this.getSingleton(beanName, new ObjectFactory<Object>() {
    public Object getObject() throws BeansException {
        try {
            return AbstractBeanFactory.this.createBean(beanName, mbd, args);
        } catch (BeansException var2) {
            AbstractBeanFactory.this.destroySingleton(beanName);
            throw var2;
        }
    }
});
        2.8.1   this.beforeSingletonCreation(beanName);要创建 bean  bean 了

 3. createBean

        resolveBeforeInstantiation aop 找切面

  4  doCreateBean

      4.1  createBeanInstance   创建出来的bean  属性还没有被复制   早期对象

       

 

 

创建ioc  容器的核心方法  :refesh(); -->

finishBeanFactoryInitialization->
preInstantiateSingletons

 

------------------------------------------------------------------------------------------------------------

1、sacn

2、parse  

3 info  cashe (deandefinition   map) ---放在deafultlistenabebeanfactory  的map  中

 

beandefinition  放置  bean定义 

beanfactoryprocess---  postprocessbeanfaction()

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值