天天看點

建立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);
    }
}           

繼續閱讀