博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring--源码分析
阅读量:6303 次
发布时间:2019-06-22

本文共 896 字,大约阅读时间需要 2 分钟。

Spring的配置文件是通过ClassPathResource来进行封装的,在Java中,不同的资源抽象成URL,通过注册不同的handle来处理不同的URL获取逻辑,一般的handle类型通过使用不同的前缀来来识别,比如file;http等,可以注册自己的URLStreamHandle来处理特定的前缀的文件,然而这需要检查当前的资源是否存在等。

对于不同的文件,Spring有不同的实现方式。

clipboard.png

比如说,在系统中,我们可以使用

Resource re = new ClassPathResource("bean.xml");
InputStream in = re.getInputStream();得到InputStream的实例之后,就可以使用Resource及其子类提供的方法,进行相应的功能的开发了。

ClassPathResource : 类路径下的资源文件,使用classLoader或class加载资源,

支持文件系统下的资源以类路径,URL等方式加载资源,但是不支持jar包里面的资源。

ClassRelativeResourceLoader:将绝对路径下的资源解释为相对路径,给相应的类加载

UrlResource:URL定位的Resource资源的实现,支持URL路径或protocol协议下的文件

AbstractFileResolvingResource:用于加载UrlResource或ClassPathResource的路径

资源类的抽象基类。

DescriptiveResource:一个实现描述资源但不是一个真实资源的URL实现。

FileSystemResource:一个实现文件处理的资源实现,支持文件或URL,实现WriteResource接口

ByteArrayResource:一个实现字节数组的资源实现,为字节资源创建ByteArrayInputStream

AbstractResource:一个公共的抽象接口类供调用,这个exists方法用于检查是否一个文件或

输入资源是否存在,isOpen总是返回false,toString方法返回描述。

转载地址:http://lhfxa.baihongyu.com/

你可能感兴趣的文章
Python使用QRCode模块生成二维码
查看>>
英语学习的重要性
查看>>
Android中Handler引起的内存泄露
查看>>
原产地政策,jsonp跨域
查看>>
HDU 1143 Tri Tiling(递归)
查看>>
ffmpeg参数具体解释
查看>>
记一次公司仓库数据库服务器死锁过程
查看>>
Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
查看>>
【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
查看>>
轨磁条简介
查看>>
(算法)交错的字符串
查看>>
hdu 5471(状压DP or 容斥)
查看>>
oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动的区别
查看>>
NSQ部署
查看>>
git常用命令记录
查看>>
IBM发布新一代云计算工具包MobileFirst Foundation
查看>>
唯品会HDFS性能挑战和优化实践
查看>>
大规模学习该如何权衡得失?解读NeurIPS 2018时间检验奖获奖论文
查看>>
大厂前端高频面试问题与答案精选
查看>>
我们用5分钟写了一个跨多端项目
查看>>