Spring Resource接口 学习

这篇具有很好参考价值的文章主要介绍了Spring Resource接口 学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Resource 接口是 Spring 资源访问策略的抽象,它本身并不提供任何资源访问实现,具体的资源访问由该接口的实现类完成——每个实现类代表一种资源访问策略。Resource一般包括这些实现类:UrlResource、ClassPathResource、FileSystemResource、ServletContextResource、InputStreamResource、ByteArrayResource。

Spring Resource接口 学习

 UrlResource

Resource的一个实现类,用来访问网络资源,它支持URL的绝对路径。

http:------该前缀用于访问基于HTTP协议的网络资源。

ftp:------该前缀用于访问基于FTP协议的网络资源

file: ------该前缀用于从文件系统中读取资源

  测试例子

import org.springframework.core.io.UrlResource;

import java.io.InputStream;

//获取网址的对应信息
public class SpringURLResource {

    public static void getURLResource(String path) {
        try {
            UrlResource urlResource = new UrlResource(path);
            System.out.println(urlResource.getDescription());
            System.out.println(urlResource.getURL());
            System.out.println(urlResource.getFilename());
            InputStream inputStream = urlResource.getInputStream();
            byte[] b = new byte[1024];
            while (inputStream.read(b) != -1) {
               System.out.println(new String(b));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        //网址例子 1   
        getURLResource("http://baidu.com");
        //获取根路径例子 2
        getURLResource("file:hhh.txt");
    }
}

 测试结果:

Spring Resource接口 学习

 ClassPathResource

ClassPathResource 用来访问类加载路径下的资源,无须使用绝对路径访问。(可以理解为他会访问项目中的Resource文件夹中的文件)

   测试例子

import org.springframework.core.io.ClassPathResource;

import java.io.InputStream;

//ClassPathResource
public class SpringClassPathResource {

    public static void getClassPathResource(String path) {
        ClassPathResource classPathResource = new ClassPathResource(path);
        System.out.println(classPathResource.getDescription());
        System.out.println(classPathResource.getPath());
        System.out.println(classPathResource.getFilename());
        try {
            InputStream inputStream = classPathResource.getInputStream();
            byte[] b = new byte[1024];
            while (inputStream.read(b) != -1) {
                System.out.println(new String(b));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


    }

    public static void main(String[] args) {
        getClassPathResource("fff.txt");
    }
}

测试结果

Spring Resource接口 学习

 FileSystemResource

 Spring 提供的 FileSystemResource 类用于访问文件系统资源,使用 FileSystemResource 来访问文件系统资源并没有太大的优势,因为 Java 提供的 File 类也可用于访问文件系统资源。(就是可以访问本电脑各个盘中的文件)

测试例子

import org.springframework.core.io.FileSystemResource;

import java.io.InputStream;

//FileSystemResource
public class SpringFileSystemResource {

    public static void getFileSystemResource(String path) {
        FileSystemResource fileSystemResource = new FileSystemResource(path);
        fileSystemResource.getDescription();
        fileSystemResource.getFilename();
        fileSystemResource.getFile();
        try {
            InputStream inputStream = fileSystemResource.getInputStream();
            byte[] b = new byte[1024];
            while (inputStream.read(b) != -1) {
                System.out.println(new String(b));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        getFileSystemResource("C:\\tolen\\www.txt");
    }
}

 测试结果

Spring Resource接口 学习

ServletContextResource、InputStreamResource、ByteArrayResource

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

*InputStreamResource :与其他Resource实现相比,这是已打开资源的描述符。 因此,它的isOpen()方法返回true。如果需要将资源描述符保留在某处或者需要多次读取流,请不要使用它。

 *ByteArrayResource : 字节数组的Resource实现类。通过给定的数组创建了一个ByteArrayInputStream。它对于从任何给定的字节数组加载内容非常有用,而无需求助于单次使用的InputStreamResource。文章来源地址https://www.toymoban.com/news/detail-445841.html

到了这里,关于Spring Resource接口 学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何高效的学习接口自动化测试?从零开始学习接口自动化测试:选择合适的学习资源和编程语言

    目录 引言: 一、学习前的准备 二、选择合适的学习资源 三、实践中学习 四、总结 在日常的软件开发过程中,接口自动化测试是一个非常重要的环节。接口自动化测试可以帮助我们快速准确地检测出软件中的缺陷,提高软件的质量和稳定性。但是,要学习接口自动化测试并

    2024年02月06日
    浏览(69)
  • Device or resource busy错误,原因是文件或资源正在被占用,无法删除

    根据错误日志,出现了java.nio.file.FileSystemException: Device or resource busy错误,原因是文件或资源正在被占用,无法删除。 解决这个问题的方法有几种: 等待资源释放:如果该文件或资源正在被其他进程或线程使用,您可以等待一段时间,让资源释放后再尝试删除。您可以在代码

    2024年02月12日
    浏览(43)
  • springboot如何访问resource目录下的文件,访问不到资源处理方法:class path resource [template.xlsx] cannot be resolved to UR

    class path resource [template.xlsx] cannot be resolved to UR ClassPathResource 可以直接访问到资源文件夹reource,但是为什么提示找不到资源呢,首先我先放出我得代码 示例代码 访问不到资源处理方法: 报错:class path resource [template.xlsx] cannot be resolved to UR 于是我检查target文件是否存在编译后

    2024年02月09日
    浏览(43)
  • 【Spring Boot 3】读取resource文件

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年03月12日
    浏览(43)
  • Spring中@Resource和@Autowire注解的区别

    @Resource和@Autowired都是用来进行依赖注入的注解,但是它们有一些不同之处。 @Autowired是Spring框架中的注解,它可以用来标注字段、构造函数、方法等,表示需要自动装配。它可以用来注入依赖的bean。如果有多个bean符合条件,可能会抛出异常。 @Resource是Java自带的注解,它可以

    2023年04月25日
    浏览(33)
  • 每日一面系列-spring中@Autowired 和 @Resource 区别?

    @Autowired注解是由Spring提供的 ,它可以用来对构造方法、成员变量及方法参数进行标注,它能够根据对象类型完成自动注入,代码如下。 再来看@Resource注解,代码如下。 public class Service { @Resource(name = \\\"service1\\\") private Service service1; @Resource(name = \\\"service2\\\") private Service service2; @Reo

    2024年02月12日
    浏览(46)
  • Spring高手之路-@Autowired和@Resource注解异同点

    目录 概述 相同点 1.都可以实现依赖注入 2.都可以用于注入任意类型的Bean 3.都支持通过名称、类型匹配进行注入 不同点 1.来源不同。 2.包含的属性不同 3.匹配方式(装配顺序)不同。 4.支持的注入对象类型不同 5.应用地方不同 @Autowired 和 @Resource 是在 Java 开发中用于实现依赖

    2024年02月03日
    浏览(47)
  • 了解Spring中的依赖注入:@Autowired vs. @Resource

    在Spring框架中,依赖注入是一项关键的特性,通过它,我们能够更灵活、更方便地管理和使用各种组件。在依赖注入的实现中, @Resource 和 @Autowired 是两个常用的注解,它们分别具有不同的特点和用途。在本篇博客中,我们将深入探讨这两个注解的功能、优缺点,并提供一些

    2024年02月02日
    浏览(55)
  • [渲染层网络层错误] Failed to load local image resource /miniprogram/images/1.jpg无法加载本地图片资源

    最近开始学习编写小程序,跟着教程走到展示图片这一步发现这个错误。按照正常的编程思路和百度大法,大部分说是路径错误和图片不能带有中字。但是按照经验复制相对路径和绝对路径都不行,还是同样的错误。代码如下。 图片的路径绝对没问题,百度有的博客说用wx

    2024年02月11日
    浏览(51)
  • 五个维度,解析 Spring 中 @Autowired 和 @Resource 的区别

    @Autowired注解是由Spring提供的,它可以用来对构造方法、成员变量及方法参数进行标注,它能够根据对象类型完成自动注入,代码如下: 再来看@Resource注解,代码如下: 它是由JDK提供的,遵循JSR-250规范,是JDK 1.6及以上加入的新特性。作为Java的标准,它的作用和@Autowired无区别

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包