Spring 资源管理
2022-09-03 16:08:20 8 举报
Spring 资源管理类图
作者其他创作
大纲/内容
ContextResource (上下文资源)
+ getPathWithinContext():String 返回封闭“上下文”中的路径。
implements
ByteArrayResource
+ getInputStream() : InputStream 返回的是字节数组输入流
FileUrlResource
+ getOutputStream() : OutputStream 通过 NIO 包下的 File 类获取输入流
ClassPathResource (使用classLoader来加载资源)
PathMatcher 扩展
扩展PathMatcher的作用为:匹配规则和是否需要通配符解析的规则可以我们自己定义。举例来说:我们可以按照结尾还有.java的字符才可以进行通配符解析
ResourcePatternResolver (路径通配符资源加载器API)
+ getResources(String locationPattern): Resource[] 根据路径通配符获取资源列表
编码原理为:将 Resource 资源转换为 Reader
URL:统一资源定位符(一个 URI 可包含多个 URL)
+ static setURLStreamHandlerFactory(String): URLStreamHandler
DefaultResourceLoader(资源加载器基础实现)
+ getResource(String location):Resource 加载指定位置的资源+ getClassLoader(): ClassLoader 获取类加载器(类加载器也可以加载资源)
PathMatchingResourcePatternResolver(路径通配符资源加载器基础实现)
可相互转换
extends
ClassRelativeResourceLoader (Class资源加载器)该加载 getResource 方法可获取 ClassPathResource
WritableResource (可写资源API)
+ isWritable(); boolean 资源是否可写+ getOutputStream();OutputStream 获取一个输出流
AbstractApplicationContext (上下文对象)
PathMatcher (路径匹配器)
FileSystemResource (通过 File 类进行输入流输出流的获取)
+ getInputStream() : InputStream 通过 NIO 包下的 File 类获取输入流
BeanDefinitionResource
+ exists(); boolean 资源是否存在+ isReadable(); boolean 资源是否可读+ getURL():URL 返回一个 URL+ getURI(): URI 返回一个 URI+ getFile(); File
FileSystemResourceLoader (FileSystemResource 加载器)该加载器 getResource 方法可获取 FileSystemResource
EncodedResource (编码资源)
+ EncodedResource(Resource):void 构造方法传入可读资源+ getReader():Reader 获取字符流
PathResource
Resource (只读资源)
InputStreamSource(输入流API)
+ getInputStream(): InputStream
UrlResource (使用 URL 来加载资源)
+ getInputStream() : InputStream 从 URL 中获取 connection 再获取其中的 InputStream
根据通配符加载器获取 Resource 列表时,会用到 PathMatcher 判断路径是否为 通配符路径,是否满足通配符条件
URI:统一资源标识符
ResourceLoader (资源加载器API)
扩展步骤主要分为两步:1. 自定义 PathMatcher 继承 PathMatcher,并重写 isPattern(); 与 match(); 方法2. 将自定义 PathMatcher 设置到 PathMatchingResourcePatternResolver 中。
AbstractResource(Resource 的基础实现)
AbstractFileResolvingResource (将 URL 解析为 UrlResource 或者 ClassPathResource)
0 条评论
下一页