Spring XmlBeanFactory分析

XmlBeanFactory使用:

StuService stuService = (StuService) new XmlBeanFactory(new ClassPathResource("app-context.xml")).getBean("stuService");

XmlBeanFactory继承DefaultListableBeanFactory,DefaultListableBeanFactory是一个很重要的Ico实现,在其Ioc容器中,比如AppicationContext, 其实实现的基本原理和XmlBeanFactory一样,也是通过持有扩展DefaultListableBeanFactory来获取基本的Ioc容器的功能的。在XmlBeanFactory的构造方法中需要得到 Resource对象。对XmlBeanDefinitionReader对象的初始化,以及使用这个对象来完成loadBeanDefinitions的调用。

 public class XmlBeanFactory extends DefaultListableBeanFactory {
    	private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);
    	public XmlBeanFactory(Resource resource) throws BeansException {
    		this(resource, null);
    	}
    	public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException {
    		super(parentBeanFactory);
    		this.reader.loadBeanDefinitions(resource);
    	}
    }
ClassPathResource类结构:AbstractResource继承Resource,AbstractFileResolvingResource实现AbstractResource,ClassPathResource实现AbstractFileResolvingResource

你可能感兴趣的:(beanfactory)