ResourcePatternResolver接口源码分析

master
xuchengsheng 2023-11-27 16:17:22 +08:00
parent 6f37c9030a
commit 770d67f75f
2 changed files with 11 additions and 21 deletions

View File

@ -68,7 +68,7 @@
- [`ResourceLoader`](spring-resources/spring-resource-resourceLoader/README.md):资源获取核心接口,实现统一加载不同位置资源的策略。<img src="https://img.shields.io/badge/Level-%E7%AE%80%E5%8D%95-0099ff"></img> - [`ResourceLoader`](spring-resources/spring-resource-resourceLoader/README.md):资源获取核心接口,实现统一加载不同位置资源的策略。<img src="https://img.shields.io/badge/Level-%E7%AE%80%E5%8D%95-0099ff"></img>
- [`ResourcePatternResolver`](spring-resources/spring-resource-resourcePatternResolver/README.md):资源模式解析接口,多位置通配符支持,用于加载应用中的资源。<img src="https://img.shields.io/badge/Level-%E7%AE%80%E5%8D%95-0099ff"></img> - [`ResourcePatternResolver`](spring-resources/spring-resource-resourcePatternResolver/README.md):资源模式解析接口,用于灵活加载应用中的多种资源。<img src="https://img.shields.io/badge/Level-%E7%AE%80%E5%8D%95-0099ff"></img>
- [`DocumentLoader`](spring-resources/spring-resource-documentLoader/README.md)XML文档加载解析核心接口支持后台自动配置Spring应用。<img src="https://img.shields.io/badge/Level-%E7%AE%80%E5%8D%95-0099ff"></img> - [`DocumentLoader`](spring-resources/spring-resource-documentLoader/README.md)XML文档加载解析核心接口支持后台自动配置Spring应用。<img src="https://img.shields.io/badge/Level-%E7%AE%80%E5%8D%95-0099ff"></img>
- 元数据与过滤 - 元数据与过滤

View File

@ -195,32 +195,22 @@ File Exists = true
### 九、常见问题 ### 九、常见问题
1. **加载类路径资源** 1. **加载类路径资源**
- 使用前缀 "classpath:",例如:`loader.getResource("classpath:myconfig.xml")`。 + 使用前缀 "classpath:",例如:`loader.getResource("classpath:myconfig.xml")`。
2. **加载文件系统资源** 2. **加载文件系统资源**
- 使用前缀 "file:",例如:`loader.getResource("file:/path/to/myconfig.xml")`。 + 使用前缀 "file:",例如:`loader.getResource("file:/path/to/myconfig.xml")`。
3. **加载URL资源** 3. **加载URL资源**
- 直接使用 URL例如`loader.getResource("http://www.example.com/config.xml")`。 + 直接使用 URL例如`loader.getResource("http://www.example.com/config.xml")`。
4. **资源不存在** 4. **资源不存在**
- 使用 `Resource.exists()` 方法检查资源是否存在。确保路径或位置正确,并且资源真的存在于预期的位置。 + 使用 `Resource.exists()` 方法检查资源是否存在。确保路径或位置正确,并且资源真的存在于预期的位置。
5. **如何读取资源内容** 5. **如何读取资源内容**
+ 从 `Resource` 对象中获取 `InputStream`,例如:`resource.getInputStream()`。
- 从 `Resource` 对象中获取 `InputStream`,例如:`resource.getInputStream()`。
6. **`Resource` 获取到文件路径** 6. **`Resource` 获取到文件路径**
- 使用 `Resource.getFile()`。但请注意这并不总是有效的例如当资源实际上是一个类路径资源或URL资源时。 + 使用 `Resource.getFile()`。但请注意这并不总是有效的例如当资源实际上是一个类路径资源或URL资源时。
7. **加载匹配特定模式的多个资源** 7. **加载匹配特定模式的多个资源**
- 使用 `ResourcePatternResolver` 或其实现 `PathMatchingResourcePatternResolver` + 使用 `ResourcePatternResolver` 或其实现 `PathMatchingResourcePatternResolver`
8. **自动注入 `ResourceLoader`** 8. **自动注入 `ResourceLoader`**
- 实现 `ResourceLoaderAware` 接口Spring 将自动为我们的 bean 提供 `ResourceLoader` 的引用。 + 实现 `ResourceLoaderAware` 接口Spring 将自动为我们的 bean 提供 `ResourceLoader` 的引用。
9. **扩展或自定义资源加载机制** 9. **扩展或自定义资源加载机制**
- 我们可以实现自己的 `ResourceLoader` 或继承现有的实现,如 `DefaultResourceLoader` + 我们可以实现自己的 `ResourceLoader` 或继承现有的实现,如 `DefaultResourceLoader`
11. **加载资源时考虑环境或属性占位符** 11. **加载资源时考虑环境或属性占位符**
- 使用 `PropertyPlaceholderConfigurer``PropertySourcesPlaceholderConfigurer``@Value` 注解可以解析属性值中的资源路径。 + 使用 `PropertyPlaceholderConfigurer``PropertySourcesPlaceholderConfigurer``@Value` 注解可以解析属性值中的资源路径。