b spring resource接口的内置实现

–> go to 总目录

文章目录

  • 2.3 内建资源的实现
    • 2.3.1 UrlResource
    • 2.3.2 ClassPathResource
    • 2.3.3. FileSystemResource
    • 2.3.4. ServletContextRes
    • 2.3.5 InputStreamResource
    • 2.3.6. ByteArrayResource

2.3 内建资源的实现

resource的实现

  • UrlResource
  • ClassPathResource
  • FileSystemResource
  • ServletContextResource
  • InputStreamResource
  • ByteArrayResource

2.3.1 UrlResource

UrlResource包装了java.net.URL,可以用来获取任何用URL方式获取的资源,例如files,和HTTP target,FTP方向。所有的URLS都有标准的String代表。例如 file:http:ftp:
一个UrlResurce的创建可以用java code 精准的创建。稍后的例子中,一个javaBeansPropertyEditor会决定到底哪一种资源会被加载。如果一个自愿的前缀是classpath,它会创建一个特殊的Resource。但是如果当不能识别初始,会被当做成一个普通的URL.

2.3.2 ClassPathResource

这个类代表了可以从classpath获取的类。他使用 thread
context class loader–一个被给予的class loader或者类来加载资源

这个Resource的实现支持java.io.file-当不在classpath目录下时。这种Resource的实现总是支持java.net.URL
Java代码通过显式使用ClassPathResource构造函数来创建ClassPathResource,但通常在调用带有String参数表示路径的API方法时隐式创建ClassPathResource。对于后一种情况,JavaBeans PropertyEditor会识别字符串路径上的特殊前缀classpath:,并在这种情况下创建ClassPathResource。

2.3.3. FileSystemResource

这是java.io.File和java.nio.file.Path句柄的Resource实现。它支持解析为文件和URL。

2.3.4. ServletContextRes

这是ServletContext资源的Resource实现,用于解释相关Web应用程序根目录中的相对路径。

它始终支持stram访问和URL访问,但仅在扩展Web应用程序档案且资源实际位于文件系统上时才允许java.io.File访问。它是在文件系统上扩展还是直接扩展,或者是否可以直接从JAR或其他类似数据库(可以想到的)中访问,实际上取决于Servlet容器。

2.3.5 InputStreamResource

InputStreamResource是给定InputStream的Resource实现。仅当没有特定的资源实现适用时才应使用它。特别是,尽可能选择ByteArrayResource或任何基于文件的Resource实现。

与其他Resource实现相反,这是一个已经打开的资源的描述符。因此,它从isOpen()返回true。如果您需要将资源描述符保存在某个地方或者需要多次读取流,请不要使用它

2.3.6. ByteArrayResource

这是给定字节数组的Resource实现。它为给定的字节数组创建一个ByteArrayInputStream。

这对于从任何给定的字节数组加载内容很有用,而不必求助于一次性InputStreamResource。

你可能感兴趣的:(SPRING)