Spring源码解读01

 Spring源码解读01此UML为ClassPathResource的资源继承体系图


解读:

  1.      InputStreamSource: 提供一个获取输入文件流的方法(getInputStream)。
  2.      Resource:继承自InputStreamSource,并抽象出资源描述符的接口,提供对文件进行描述的方法。

                      1). boolean exists(); 判断文件是否存在

                      2). boolean isReadable(); 判断文件是否可读

                      3). boolean isOpen(); 判断文件是否处于打开状态

                      4). URL getURL(); 返回资源的URL句柄

                      5). URI getURI(); 返回资源的URI句柄

                      6). File getFile(); 获取资源文件

                      7). long contentLength(); 确定资源内容长度

                      8). long lastModified(); 确定资源上次修改的时间(timestamp)

                      9). Resource createRelative(String relativePath) ; 通过该资源创建一个相对该路径的资源

                     10). String getFilename(); 获取资源文件名

                     11). String getDescription(); 获取资源文件描述

  1.    AbstractResource: 对抽象资源描述接口的简单实现。
  2.    AbstractFileResolvingResource:  抽象解析基类,用于将URL解析为文件引用的资源
  3.    ClassPathResource: 继承自AbstractFileResolvingResource,主要是对类路径资源的加载

                        主要包括三个属性:

                                   1). path: 资源路径

                                   2). classLoader: 类加载器(加载资源)

                                   3). clazz: 通过此类的类加载器去加载资源

                       标记:

                                this.classLoader.getResource(this.path): 加载根路径下的资源

                                this.clazz.getResource(this.path): 加载此类路径下的相对路径资源