tiny-spring源码解析(五)读取xml配置来初始化bean

git checkout step-4-config-beanfactory-with-xml

这里面有一个XmlBeanDefinitionReader 接口 有一个实现loadBeanDefinitions


image.png

这个是载入resources目录下的配置文件


image.png

我们看看做了什么
···

public class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader {

public XmlBeanDefinitionReader(ResourceLoader resourceLoader) {
    super(resourceLoader);
}

@Override
public void loadBeanDefinitions(String location) throws Exception {
    InputStream inputStream = getResourceLoader().getResource(location).getInputStream();
    doLoadBeanDefinitions(inputStream);
}

···
很明显是读取io流文件进来 之后调用doLoadBeanDefinitions方法取出name节点和class节点的值 然后就是第一篇的一样
···

protected void processBeanDefinition(Element ele) {
    String name = ele.getAttribute("name");
    String className = ele.getAttribute("class");
    BeanDefinition beanDefinition = new BeanDefinition();
    processProperty(ele,beanDefinition);
    beanDefinition.setBeanClassName(className);
    getRegistry().put(name, beanDefinition);
}

···
还有xml bean配置的property节点的值 也就是将这些值一样的放入BeanDefinition的 propertyValues集合基本在基于前四篇讲的多了IO加载xml bean 和属性 然后初始化工厂时候初始化bean
最后


tiny-spring源码解析(五)读取xml配置来初始化bean_第1张图片
image.png

你可能感兴趣的:(tiny-spring源码解析(五)读取xml配置来初始化bean)