春天的Resource
接口旨在成为一个更强大的接口,用于抽象对低级资源的访问。
它有时会包装文件,有时则不会。
它有六个内置工具:UrlResource
, ClassPathResource
, FileSystemResource
, ServletContextResource
, InputStreamResource
, ByteArrayResource
.
您可以自己实现资源表单。
The UrlResource
包裹一个java.net.URL
,并且可用于访问通常可通过 URL 访问的任何对象。如果你使用http:
前缀,资源是一个URL。
The ClassPathResource
表示应从类路径获取的资源。这Resource
实施支持决议为java.io.File
如果类路径资源驻留在文件系统中,但不适用于驻留在 jar 中并且尚未(通过 servlet 引擎或任何环境)扩展到文件系统的类路径资源。为了解决这个问题各种种类Resource
实现始终支持分辨率作为java.net.URL
.
FileSystemResource
是一个工具java.io.File
处理。它显然支持分辨率作为File
并作为URL
.
InputStreamResource
是给定的资源实现InputStream
。如果您需要将资源描述符保存在某处,或者需要多次读取流,请不要使用它。
ByteArrayResource
is a Resource
实现给定的字节数组。它为给定的字节数组创建一个 ByteArrayInputStream。
所以你不应该总是使用getFile()
作为春天的Resource
并不总是代表文件系统资源。因此,我们建议您使用getInputStream()
访问资源内容,因为它可能适用于所有可能的资源类型。
参考:资源 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#resources