第十一章:Spring 资源管理(1)

本文探讨了Spring为何选择自定义资源管理,介绍了Java标准资源管理的扩展过程,重点讲解了SpringResource接口、内置实现、加载器及路径匹配,还涵盖了如何通过依赖注入管理和使用这些资源。

@[TOC](第十一章:Spring 资源管理(1))

1.引入动机

• 为什么 Spring 不使用 Java 标准资源管理,而选择重新发明轮子?

• Java 标准资源管理强大,然而扩展复杂,资源存储方式并不统一

• Spring 要自立门户(重要的话,要讲三遍)

• Spring “抄”、“超” 和 “潮”

2.Java 标准资源管理

• Java URL 协议扩展

• 基于 java.net.URLStreamHandlerFactory

• 基于 java.net.URLStreamHandler
• 基于 java.net.URLStreamHandlerFactory 扩展协议
• 基于 java.net.URLStreamHandler 扩展协议
基于 java.net.URLStreamHandler 扩展协议

3.Spring 资源接口

在这里插入图片描述

4.Spring 内建 Resource 实现

在这里插入图片描述

5.Spring Resource 接口扩展

• 可写资源接口
• org.springframework.core.io.WritableResource
•org.springframework.core.io.FileSystemResource
•org.springframework.core.io.FileUrlResource(@since 5.0.2)
•org.springframework.core.io.PathResource(@since 4.0 & @Deprecated)

• 编码资源接口
• org.springframework.core.io.support.EncodedResource

6.Spring 资源加载器

• Resource 加载器
• org.springframework.core.io.ResourceLoader
• org.springframework.core.io.DefaultResourceLoader
•org.springframework.core.io.FileSystemResourceLoader
•org.springframework.core.io.ClassRelativeResourceLoader
•org.springframework.context.support.AbstractApplicationContext

7.Spring 通配路径资源加载器

• 通配路径 ResourceLoader
• org.springframework.core.io.support.ResourcePatternResolver
• org.springframework.core.io.support.PathMatchingResourcePatternResolve r

• 路径匹配器
• org.springframework.util.PathMatcher
• Ant 模式匹配实现 - org.springframework.util.AntPathMatcher

8.Spring 通配路径资源扩展

• 实现 org.springframework.util.PathMatcher

• 重置 PathMatcher
• PathMatchingResourcePatternResolver#setPathMatcher

9.依赖注入Spring Resource

• 基于 @Value 实现
• 如:
@Value(“classpath:/…”) private Resource resource;

10.依赖注入 ResourceLoader

• 方法一:实现 ResourceLoaderAware 回调
• 方法二:@Autowired 注入 ResourceLoader
• 方法三:注入 ApplicationContext 作为 ResourceLoader

11.面试题精选

1、Spring 配置资源中有哪些常见类型?
答:•XML 资源
•Properties 资源
•YAML 资源
2、请例举不同类型 Spring 配置资源?
答:
• XML 资源
• 普通 Bean Definition XML 配置资源 - *.xml
• Spring Schema 资源 - *.xsd
• Properties 资源
•普通 Properties 格式资源 - *.properties
•Spring Handler 实现类映射文件 - META-INF/spring.handlers
•Spring Schema 资源映射文件 - META-INF/spring.schemas
• YAML 资源
• 普通 YAML 配置资源 - *.yaml 或 *.yml
3、Java 标准资源管理扩展的步骤?
答:
• 简易实现
• 实现 URLStreamHandler 并放置在 sun.net.www.protocol.${protocol}.Handler 包下
• 自定义实现
• 实现 URLStreamHandler
• 添加 -Djava.protocol.handler.pkgs 启动参数,指向 URLStreamHandler 实现类的包下
• 高级实现
• 实现 URLStreamHandlerFactory 并传递到 URL 之中

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值