前言spring
spring framework将资源抽象,面向接口编程,以便使框架和具体实现相互分离,这也是spring非侵入式的体现编程
资源模块接口的设计图数组
接下来仍是须要先了解每个接口的功能app
1.InputStreamSource框架
2.Resource
对底层资源的一种抽象描述,好比文件或classpath的资源;url
3.WritableResource
对Resource的扩展接口,扩展了写出的功能
4.AbstractResource
为实现类提供便利的基类
5.BeanDefinitionResource 主要是包裹了一个BeanDefinition,其中spa
7.ClassPathResource 定位classpath下的资源
以上是对资源高度抽象的接口设计,下面要看到的是对资源加载的接口设计
8.ResourceLoader
加载资源的策略接口(如filesystem or classpath ), ApplicationContext继承了该功能,能够在ApplicationContext运行时,使用特定的资源加载策略读取资源;DefaultResourceLoader是一个独立的实现,在ApplicationContext外部使用;
9.ResourcePatternResolver
策略接口,根据location 模式(如ant-style)解析为Resource资源对象;ApplicationContext经过ResourceLoaderAware将ResourceLoader注入上下文,加载资源;设计
10.PathMatchingResourcePatternResolver 是一个独立的实现,在applicationcontext外部使用;输入的模式必须匹配实现的策略;该接口只是提供了转换方法而不是指定了资源模式的具体格式;
对象