测试代码功能的实现就以下几点:
(1)读取配置文件beanFactoryTest.xml
(2)根据beanFactoryTest.xml中的配置找到对应的类的配置文件,并实例化。
(3)调用实例化后的的实例
ConfigReader:用于读取验证配置文件,我们要用配置文件里面的数据,当然首先要读取配置文件,并把数据放置在内存中。
ReflectionUtil:用于配合文件中的反射实例化,比如在配置文件中有beanFactoryTest.xml出现的<bean id="myBean" calss="bean.MyTestBean">
我们就可以根据bean.MyTestBean进行实例化
(4)App:用于完成 整个逻辑的串联
spring中2个核心类的理解
1:DefaultListableBeanFactory
XmlBeanFactory继承DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心,是spring注册及加载bean的默认实现,
而对于XmlBeanFactory与DefaultListableBeanFactory不同的是在XmlBeanFactory中使用了定义XMl读取器XmlBeanDefinietionReader,实现了个性化
BeanDefinitionReader读取,DefaultListableBeanFactory继承了AbstractAutowireCapableBeanFactory并实现了configrationListableBeanFactory以及
BeanDefinitionRegistery接口,
Spring中第二个核心的类XmlBeanDefinitionReader
XML配置文件的读取是spring中重要的功能,因为spring大部分的文件都是以配置作为切入点,那么我们就XmlBeanDefinitionReader中梳理一下文件的读取,
解析,注册的大致脉络,
ResourceLoader:定义资源加载,主要应用于根据给定的资源文件路径返回对应的Resource
BeanDefinitionReader: 主要定义资源文件读取并抓换为BeanDefinition的各个功能
EnvironmentCapable:定义获取Enviroment环境
XMBeanDefinitionReader主要的步骤:
《1》通过继承AbstractBeanDefinitionReader中的方法,来使用ResourceLoader将资源文件路径转化为对应得resource资源
<2>通过DocumentLoader对Resource文件进行转化,将Resource转化为document
《3》通过实现接口beanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader类对Document进行解析,并使用
BeanDefinitionParserDelegate对element进行解析