彩票走势图

Spring架构详解(7):BeanFactory的创建-上

转帖|行业资讯|编辑:郝浩|2016-02-23 11:39:33.000|阅读 1555 次

概述:BeanFactory是IOC容器最重要的接口之一,本文介绍了BeanFactory的创建过程。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

下面是更新BeanFactory的方法代码:

protected final void refreshBeanFactory() throws BeansException {    
 
    if (hasBeanFactory()) {    
 
        destroyBeans();    
 
        closeBeanFactory();    
 
    }  
 
    try {  
 
        DefaultListableBeanFactory beanFactory = createBeanFactory();  
 
        beanFactory.setSerializationId(getId());  
 
        customizeBeanFactory(beanFactory);  
 
        loadBeanDefinitions(beanFactory);  
 
        synchronized (this.beanFactoryMonitor) {  
 
            this.beanFactory = beanFactory;    
 
        }  
 
    }  
 
    catch (IOException ex) {    
 
        throw new ApplicationContextException(    
 
                       "I/O error&  nbsp;parsing bean definition source for "  
 
                       + getDisplayName  (), ex);  
 
    }  
 
}    

这个方法实现了AbstractApplicationContext的抽象方法refreshBeanFactory,这段代码清楚的说明了BeanFactory的创建过程。注意BeanFactory对象的类型的变化,前面介绍了他有很多子类,在什么情况下使用不同的子类这非常关键。BeanFactory的原始对象是DefaultListableBeanFactory,这个非常关键,因为他设计到后面对这个对象的多种操作,下面看一下这个类的继承层次类图:

DefaultListableBeanFactory类继承关系图
DefaultListableBeanFactory类继承关系图

从这个图中发现除了BeanFactory相关的类外,还发现了与Bean的register相关。这在refreshBeanFactory方法中有一行loadBeanDefinitions(beanFactory)将找到答案,这个方法将开始加载、解析 Bean的定义,也就是把用户定义的数据结构转化为Ioc容器中的特定数据结构。

这个过程可以用下面时序图解释:

创建BeanFactory时序图
创建BeanFactory时序图

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP