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