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