Resource 在 Java 当做资源使用 URL 进行表示。Spring 将对物理资源的访问方式抽象成了 Resouce, 我们可以通过 Spring 提供的接口来访问磁盘文件等数据。
针对不同的资源采取了不同的实现方式。
Resouce 体系结构
- 使用 UrlResource 访问网络资源:UrlResource 来访问网络资源,也可以通过 file 前缀访问本地资源。
- ClassPathResource访问类加载路径下的资源:
ClassPathResource
用来访问类加载路径下的资源,相对于其他的 Resource 实现类,其主要优势是方便访问类加载路径里的资源,尤其对于 Web 应用,ClassPathResource 可自动搜索位于WEB-INF/classes
下的资源文件,无须使用绝对路径访问。 - FileSystemResource 访问文件资源系统:Spring 提供的
FileSystemResource
类用于访问文件系统资源,使用FileSystemResource
来访问文件系统资源并没有太大的优势,因为 Java 提供的 File 类也可用于访问文件系统资源。 - ServletContextResource:
ServletContext
资源的Resource
实现,它解释相关 Web 应用程序根目录中的相对路径。 - InputStreamResource:
InputStreamResource
是给定的输入流(InputStream) 的Resource
实现。 - ByteArrayResource:字节数组的
Resource
实现类。通过给定的数组创建了一个ByteArrayInputStream
。