工作学习之spring:spring初始化读取xml配置文件

                                                                                            spring学习之:初始化过程

        在spring中的常见操作就是写一个xml格式的配置文件,然后把bean等相关的信息配置在其中,为什么这样做?之前很少想过。今天粗略地研究了spring的源码。明白了其中的大概的流程。

       首先在spring中bean加载的核心部分是DefauleListableBeanFactory这个类,是spring注册和加载bean的核心部分,这个类实现一系列的接口以及一些抽象类,对bean的加载功能进行了很多的功能扩展。而xmlBeanFactory则是继承了DefauleListableBeanFactory,DefaultListableBeanFactory的继承和实现如下图所示:

工作学习之spring:spring初始化读取xml配置文件_第1张图片

紧接着XmlBeanFactory对上面的类进行了扩展,主要从xml中加载bean

工作学习之spring:spring初始化读取xml配置文件_第2张图片

可以看出这是一个过期的类,现在已经不使用了,在这个类中发现了它是采用XmlBeanDefinationReader对类路径下的资源文件进行解析的。

下面我们来看看这个类:

     下面主要看看java中对资源文件的封装在spring中是怎么实现的,我们都知道在HTTP中经常把网络中的资源定义为URL,通过URL可以查看网络上的不同的资源。在spring中采用了Resource对象来实现对资源文件的封装,进而读取配置文件,解析相关的bean的配置信息。这是一个非常重要的类,它位于spring-core包下的io模块,主要是对资源文件的解析,一般的对资源文件的解析都会包含这个类的。

工作学习之spring:spring初始化读取xml配置文件_第3张图片

可以看到这个类是继承了另外的一个接口的。是一个对java中IO流中相关接口的包装和一些进一步的实现。在该接口中提供了判断资源状态,存在性,可读性等一些列的方法。从java接口的设计原理来看,肯定会有很多不同的文件系统,或者称为资源文件对于Resource的实现:FielSystenResource,ClasspathResource,UrlResource,BityArrayResource等不同的实现。

工作学习之spring:spring初始化读取xml配置文件_第4张图片

完成了对文件的读取,实质上底层还是调用jdk的io部分的相关方法进行调用的。其中还使用到了ClassLoder的getResourceAsStreeam();


你可能感兴趣的:(javaEE开发)