二 spring源码分析---资源模块接口设计
2015-03-04 17:56
465 查看
前言
spring framework将资源抽象,面向接口编程,以便使框架和具体实现相互分离,这也是spring非侵入式的体现
资源模块接口的设计图
![](http://img.blog.csdn.net/20150304175832256)
接下来还是需要先了解每一个接口的功能
1.InputStreamSource
![](http://img.blog.csdn.net/20150304180101277)
2.Resource
对底层资源的一种抽象描述,比如文件或classpath的资源;
![](http://img.blog.csdn.net/20150304180129299)
3.WritableResource
对Resource的扩展接口,扩展了写出的功能
![](http://img.blog.csdn.net/20150304180133983)
4.AbstractResource
为实现类提供便利的基类
5.BeanDefinitionResource 主要是包裹了一个BeanDefinition,其中
DescriptiveResource 包裹了一个description字符串
InputStreamResource 对于给定InputStream资源的接口,所以该类中的isOpen()方法总是返回true;
ByteArrayResource 包裹了一个字节数组 byteArray,是负责byte资源的接口;
FileSystemResource 包裹了一个File,负责文件资源的接口;
PathResource 包裹了一个Path,即负责nio中path的接口;
AbstractFileResolvingResource 解析URL为文件,如UrlResource, ClasspathResource;
6.UrlResource 负责URL定位的类,如果url的协议是"file:", 也可以转为文件资源;
7.ClassPathResource 定位classpath下的资源
以上是对资源高度抽象的接口设计,下面要看到的是对资源加载的接口设计
![](http://img.blog.csdn.net/20150304180112805)
8.ResourceLoader
加载资源的策略接口(如filesystem or classpath ), ApplicationContext继承了该功能,可以在ApplicationContext运行时,使用特定的资源加载策略读取资源;DefaultResourceLoader是一个独立的实现,在ApplicationContext外部使用;
![](http://img.blog.csdn.net/20150304180115894)
9.ResourcePatternResolver
策略接口,根据location 模式(如ant-style)解析为Resource资源对象;ApplicationContext通过ResourceLoaderAware将ResourceLoader注入上下文,加载资源;
10.PathMatchingResourcePatternResolver 是一个独立的实现,在applicationcontext外部使用;输入的模式必须匹配实现的策略;该接口只是提供了转换方法而不是指定了资源模式的具体格式;
spring framework将资源抽象,面向接口编程,以便使框架和具体实现相互分离,这也是spring非侵入式的体现
资源模块接口的设计图
接下来还是需要先了解每一个接口的功能
1.InputStreamSource
2.Resource
对底层资源的一种抽象描述,比如文件或classpath的资源;
3.WritableResource
对Resource的扩展接口,扩展了写出的功能
4.AbstractResource
为实现类提供便利的基类
5.BeanDefinitionResource 主要是包裹了一个BeanDefinition,其中
DescriptiveResource 包裹了一个description字符串
InputStreamResource 对于给定InputStream资源的接口,所以该类中的isOpen()方法总是返回true;
ByteArrayResource 包裹了一个字节数组 byteArray,是负责byte资源的接口;
FileSystemResource 包裹了一个File,负责文件资源的接口;
PathResource 包裹了一个Path,即负责nio中path的接口;
AbstractFileResolvingResource 解析URL为文件,如UrlResource, ClasspathResource;
6.UrlResource 负责URL定位的类,如果url的协议是"file:", 也可以转为文件资源;
7.ClassPathResource 定位classpath下的资源
以上是对资源高度抽象的接口设计,下面要看到的是对资源加载的接口设计
8.ResourceLoader
加载资源的策略接口(如filesystem or classpath ), ApplicationContext继承了该功能,可以在ApplicationContext运行时,使用特定的资源加载策略读取资源;DefaultResourceLoader是一个独立的实现,在ApplicationContext外部使用;
9.ResourcePatternResolver
策略接口,根据location 模式(如ant-style)解析为Resource资源对象;ApplicationContext通过ResourceLoaderAware将ResourceLoader注入上下文,加载资源;
10.PathMatchingResourcePatternResolver 是一个独立的实现,在applicationcontext外部使用;输入的模式必须匹配实现的策略;该接口只是提供了转换方法而不是指定了资源模式的具体格式;
相关文章推荐
- Spring源码分析——资源访问利器Resource之接口和抽象类分析
- Spring对注解(Annotation)处理源码分析2——解析和注入注解配置的资源
- 三 spring源码解析--- Bean解析接口结构分析
- Spring源码分析——BeanFactory体系之接口详细分析
- Spring源码分析----AOP概念(Advice,Pointcut,Advisor)和AOP的设计与实现
- [置顶]【Spring源码分析系列】ApplicationContext 相关接口架构分析
- org.springframework.core.io.Resource接口源码分析
- Spring对注解(Annotation)处理源码分析2——解析和注入注解配置的资源
- Spring对注解(Annotation)处理源码分析2——解析和注入注解配置的资源
- Spring源码分析----IoC容器其他特性的设计与实现
- spring 源码解读与设计详解:4 DefaultListableBeanFactory及资源载入
- spring boot实战(第六篇)加载application资源文件源码分析
- spring源码分析之spring-jdbc模块详解
- Spring源码分析1--IoC容器载入Bean定义资源
- 兼容xilinx公司开发板设计--基于FMC接口的DSP TMS320C6455子卡模块-- 用于软件无线电 图像处理 信号分析
- spring 源码解读与设计详解:6 BeanDefinitionParserDelegate与资源解析
- Spring源码解析 - AbstractBeanFactory 实现接口与父类分析
- Spring对注解(Annotation)处理源码分析2——解析和注入注解配置的资源
- Spring源码解析之IoC容器主要接口设计
- Spring源码分析【0】-框架的基础:继承和接口调用链