从Spring框架中咱们知道,Core包含Spring的核心工具类,是其余组件的基本核心,其中最重要的是它定义了资源的访问方式。
Resource接口封装了各类可能的资源类型,对使用者来讲屏蔽了文件类型的不一样。ResourceLoader接口屏蔽了全部的资源加载者的差别,只须要实现这个接口就能够加载全部的资源, 它的默认实现是DefaultResourceLoader。
关键类结构和实现:数组
- Resource
Resource是对资源文件的统一抽象。
Resource结构如图所示:

1) AbstractResource实现Resource接口,实现通用的方法。
2) ContextResource用于扩展来自Context的资源文件。
3) FileSystemResource可用来获取文件系统里面的资源。
4) InputStreamResource是针对于输入流封装的资源,它的构建须要一个输入流。
5) ByteArrayResource是针对于字节数组封装的资源,它的构建须要一个字节数组。
6) ClassPathResource可用来获取类路径下的资源文件。
7) UrlResource可用来表明URL对应的资源,它对URL作了一个简单的封装。
8) ServletContextResource是针对于ServletContext封装的资源,用于访问ServletContext环境下的资源。ServletContextResource持有一个ServletContext的引用,其底层是经过ServletContext的getResource()方法和getResourceAsStream()方法来获取资源的。
- ResourceLoader
ResourceLoader是资源加载器,经过传入路径生成Resource。
ResourceLoader结构如图所示:
1) DefaultResourceLoader是ResourceLoader接口的默认实现,getResource经过判断路径前缀返回不一样的Resource,getResourceByPath默认返回ClassPathContextResource。 2) FileSystemResourceLoader继承DefaultResourceLoader,加载FileSystemResource,getResourceByPath默认返回FileSystemContextResource。 3) ServletContextResourceLoader继承DefaultResourceLoader,加载ServletContextResource, getResourceByPath默认返回ServletContextResource。 4) ResourcePatternResolver根据路径模式匹配多个路径,将这些路径对应的资源生成对应的Resource。 5) PathMatchingResourcePatternResolver实现了ResourcePatternResolver,PathMatchingResourcePatternResolver实现路径模式匹配,内部则使用代理DefaultResourceLoader的方式实现资源加载功能。