Resource源码分析

master
xuchengsheng 2023-10-30 16:10:29 +08:00
parent 114560b608
commit 7b428b58bd
1 changed files with 2 additions and 3 deletions

View File

@ -2,7 +2,7 @@
- [org.springframework.core.io.Resource](#orgspringframeworkcoreioresource) - [org.springframework.core.io.Resource](#orgspringframeworkcoreioresource)
- [一、知识储备](#一知识储备) - [一、知识储备](#一知识储备)
- [二、简介](#二简介) - [二、基本描述](#二基本描述)
- [三、主要功能](#三主要功能) - [三、主要功能](#三主要功能)
- [四、接口源码](#四接口源码) - [四、接口源码](#四接口源码)
- [五、主要实现](#五主要实现) - [五、主要实现](#五主要实现)
@ -20,7 +20,6 @@
- [自定义资源加载和处理](#自定义资源加载和处理) - [自定义资源加载和处理](#自定义资源加载和处理)
- [八、常见问题](#八常见问题) - [八、常见问题](#八常见问题)
### 一、知识储备 ### 一、知识储备
1. **I/O知识** 1. **I/O知识**
@ -30,7 +29,7 @@
3. **URL和URI概念** 3. **URL和URI概念**
+ 这对于理解如何从网络或其他协议中加载资源是必要的。 + 这对于理解如何从网络或其他协议中加载资源是必要的。
### 二、简介 ### 二、基本描述
`Resource` 是 Spring 框架中用于简化和统一对底层资源如文件、classpath 资源、URL 等)的访问的一个核心接口。它为不同来源的资源提供了一个共同的抽象,并隐藏了具体资源访问的细节。在 Java 开发中,资源的访问是常见的需求,如读取配置文件、图片、音频等。但 Java 的标准库为不同类型的资源提供了不同的访问机制:例如,对于文件系统中的资源,我们可能使用 `java.io.File`;对于 classpath 中的资源,我们可能使用 `ClassLoader``getResource``getResourceAsStream` 方法;对于网络资源,我们可能使用 `java.net.URL`。这些不同的机制意味着我们需要了解和使用多种方式来访问资源这导致的问题是代码复杂性增加、重复代码以及可能的错误。为了提供一个统一、简化和更高级的资源访问机制Spring 框架引入了 `Resource` 接口,这个接口为所有的资源提供了一个统一的抽象。 `Resource` 是 Spring 框架中用于简化和统一对底层资源如文件、classpath 资源、URL 等)的访问的一个核心接口。它为不同来源的资源提供了一个共同的抽象,并隐藏了具体资源访问的细节。在 Java 开发中,资源的访问是常见的需求,如读取配置文件、图片、音频等。但 Java 的标准库为不同类型的资源提供了不同的访问机制:例如,对于文件系统中的资源,我们可能使用 `java.io.File`;对于 classpath 中的资源,我们可能使用 `ClassLoader``getResource``getResourceAsStream` 方法;对于网络资源,我们可能使用 `java.net.URL`。这些不同的机制意味着我们需要了解和使用多种方式来访问资源这导致的问题是代码复杂性增加、重复代码以及可能的错误。为了提供一个统一、简化和更高级的资源访问机制Spring 框架引入了 `Resource` 接口,这个接口为所有的资源提供了一个统一的抽象。