spring学习笔记(2)文件资源访问接口Resource

简介: <div class="markdown_views"><h1 id="spring-资源抽象接口下的几个常用实现类">spring 资源抽象接口下的几个常用实现类</h1><table><thead><tr><th>实现类</th> <th>说明</th></tr></thead><tbody><tr><td>ClassPathResource</td>

spring 资源抽象接口下的几个常用实现类

实现类 说明
ClassPathResource 类路径下的资源,资源以相对类路径的方式表示
FileSystemResource 文件系统资源,资源以文件系统路径的的方式表示,如/home/root/test.txt
ServletContextResource 为访问web上下文中的资源而设计的类,负责以相对于web应用根目录的路径加载资源,它支持以流和URL的方式访问,在war解包情况下,也可以通过File的方式访问,该类还可以直接从jar包中访问资源;
UrlResource Url封装了java.net.URL ,它使用户能够访问任何可以通URL表示的资源,如文件系统的资源、HTTP资源、FTP资源等

类型资源前缀

地址前缀 对应资源类型
classpath: 从类路径中加载资源,资源文件可以在标准的文件系统中,也可以在jar或zip的类包中。
file: 使用UrlResource从文件系统目录中装载资源,可使用绝对路径或相对路径
http:// 使用UrlResource从Web服务器中装载资源
ftp:// 使用UrlResource从FTP服务器中装载资源
根据具体的实现类再用对应类型的resource

Ant风格资源地址支持3种匹配符:

符号 说明
匹配文件名中的一个字符
* 匹配文件名中任意一个字符
** 匹配多层路径

资源加载器

说明
ResourceLoader 是一个interface,通过getResource(String Location)方法根据资源地址来加载资源,仅支持带资源类型前缀的表达式,不支持Ant风格的资源路径表达式。
ResourcePatternResolve 扩展自ResourceLoader接口,但也是一个interface。通过getResources(String LocationPattern)来获取资源,该方法支持带资源类型前缀和Ant风格的资源路径。
PathMachingResourcePatternResolver ResoucePatternResolve的标准实现类,多通过此类来加载资源。
目录
相关文章
|
2月前
|
NoSQL Java 数据库连接
《深入理解Spring》Spring Data——数据访问的统一抽象与极致简化
Spring Data通过Repository抽象和方法名派生查询,简化数据访问层开发,告别冗余CRUD代码。支持JPA、MongoDB、Redis等多种存储,统一编程模型,提升开发效率与架构灵活性,是Java开发者必备利器。(238字)
|
3月前
|
智能设计 Java 测试技术
Spring中最大化@Lazy注解,实现资源高效利用
本文深入探讨了 Spring 框架中的 `@Lazy` 注解,介绍了其在资源管理和性能优化中的作用。通过延迟初始化 Bean,`@Lazy` 可显著提升应用启动速度,合理利用系统资源,并增强对 Bean 生命周期的控制。文章还分析了 `@Lazy` 的工作机制、使用场景、最佳实践以及常见陷阱与解决方案,帮助开发者更高效地构建可扩展、高性能的 Spring 应用程序。
173 0
Spring中最大化@Lazy注解,实现资源高效利用
|
3月前
|
安全 数据可视化 Java
AiPy开发的 Spring 漏洞检测神器,未授权访问无所遁形
针对Spring站点未授权访问问题,现有工具难以检测如Swagger、Actuator等组件漏洞,且缺乏修复建议。全新AI工具基于Aipy开发,具备图形界面,支持一键扫描常见Spring组件,自动识别未授权访问风险,按漏洞类型标注并提供修复方案,扫描结果可视化展示,支持导出报告,大幅提升渗透测试与漏洞定位效率。
|
XML Java 数据格式
探索Spring之利剑:ApplicationContext接口
本文深入介绍了Spring框架中的核心接口ApplicationContext,解释了其作为应用容器的功能,包括事件发布、国际化支持等,并通过基于XML和注解的配置示例展示了如何使用ApplicationContext管理Bean实例。
572 6
|
自然语言处理 JavaScript Java
Spring 实现 3 种异步流式接口,干掉接口超时烦恼
本文介绍了处理耗时接口的几种异步流式技术,包括 `ResponseBodyEmitter`、`SseEmitter` 和 `StreamingResponseBody`。这些工具可在执行耗时操作时不断向客户端响应处理结果,提升用户体验和系统性能。`ResponseBodyEmitter` 适用于动态生成内容场景,如文件上传进度;`SseEmitter` 用于实时消息推送,如状态更新;`StreamingResponseBody` 则适合大数据量传输,避免内存溢出。文中提供了具体示例和 GitHub 地址,帮助读者更好地理解和应用这些技术。
2421 121
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
228 11
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
285 2
|
Java Maven
IDEA Maven SpringBoot配置POM文件
IDEA Maven SpringBoot配置POM文件
616 0