资源访问

来源:互联网 发布:java读英文文件乱码 编辑:程序博客网 时间:2024/06/05 11:36
Resource接口,有如下方法:
boolean exists();                            资源是否存在
boolean isOpen;                           资源是否打开
URL getURL();                                如果资源对应一个URL, 返回URL
File getFile();                                  如果资源对应一个文件,返回文件
InputStream getInputStream();    返回资源对应的输入流

Resource接口的实现类:

ByteArrayResource: 
二进制数组表示的资源

ClassPathResource: 
类路径下的资源,以类路径访问

FileSystemResource: 
文件系统资源,以文件系统绝对路径访问

InputStreamResource: 
对应一个InputStream资源

ServletContextResource:
为访问Web容器上下文中的资源设计的类,以相对于Web应用根目录的路径加载资源

UrlResource: 
使用户可以访问任何通过URL表示的资源,例如文件系统、HTTP、FTP等资源


如果资源地址没有前缀,则根据以上实现类来加载;如果有前缀,可以直接使用ResourceLoader接口自动区分类型
地址前缀
实例
对应资源类型
classpath
classpath:com/gome/doc/beans.xml
从类路径加载,相对于类的跟路径,资源文件可以在文件系统中,也可以在jar或zip的类包中
file:
file:/conf/com/……/beans.xml
从文件路径加载,可以是相对路径或者绝对路径
http://
http://www.gome.com/……/beans.xml
从Web服务器中加载资源
ftp://
ftp://www.gome.com/……/beans.xml
从FTP服务器中加载资源
Ant风格资源地址:
/t?st.xml              ?代表一个字符
/*.xml                  *代表若干个字符
/**/test.xml         **代表若干层路径

ResourceLoader 只有一个方法:getResource(String location)
资源地址仅支持带类型前缀的表达式,不支持Ant风格的

ResourcePatternResolver扩展ResourceLoader接口,方法:getResources(String locationPattern)
资源地址支持带前缀的或者Ant风格的



















0 0