Spring源码解析-读书笔记2

Spring最核心的两个类:

1.DefaultListableBeanFactory

    XmlBeanFactory 继承自DefaultListableBeanFactory.

    DefaultListableBeanFactory是整个bean加载的核心,是spring注册和加载bean的默认实现;

    XmlBeanFactory和DefaultListableBeanFactory的区别在于:XmlBeanFactory使用了自定义的xml读取器XmlBeanDefinitionReader,实现了BeanDefinitionReader读取;DefaultListableBeanFactory继承了AbstractAutowirecapableBeanFactory 并实现了ConfigurableListableBeanFactory和BeanDefinitionRegistry接口.

2.XmlBeanDefinitionReader

    主要负责xml的读取,包括资源文件的读取.解析.注册.

    通过分析XmlBeanDefinitionReader中主要包含对xml配置文件处理的几步,如下:

    1).使用resourceLoader将资源文件路径转换成对应的Resource文件;

    2).使用DocumentLoader对Resource进行转换,转换Document文件;

    3).使用DefaultBeanDefinitionDocumentReder对document进行解析,并使用BeanDefinitionParserDelegate对Element进行解析.

BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanfactoryTest.xml"))

在上面这句代码中的执行逻辑:

    1)调用ClassPathResource构造器由classPath下的xml文件生成Resource对象;

    2)在XmlBeanFactory构造器中加载resource,产生BeanFactory对象返回;


spring的配置文件的读取是通过ClassPathResource来进行封装的.

之后的读取工作就右XmlBeanDefinitionReader来完成;



猜你喜欢

转载自blog.csdn.net/lucca_hello/article/details/80071043
今日推荐