天天看点

创建BeanFactory的方法

@Override
protected final void refreshBeanFactory() throws BeansException {
    if (hasBeanFactory()) {
        destroyBeans();
        closeBeanFactory();
    }
    try {
                //创建IoC容器,这里使用的是DefaultListableBeanFactory    
         DefaultListableBeanFactory beanFactory = createBeanFactory();
               //
        beanFactory.setSerializationId(getId());
        customizeBeanFactory(beanFactory);
               //启动对BeanDefintion的载入    
        loadBeanDefinitions(beanFactory);
        synchronized (this.beanFactoryMonitor) {
            this.beanFactory = beanFactory;
        }
    }
    catch (IOException ex) {
        throw new ApplicationContextException("I/O error parsing bean definition source for " + getDisplayName(), ex);
    }
}           

继续阅读