JDK所提供的访问资源的类并不能很好的满足各种底层资源的访问需求,因此,Spring设计了一个Resource接口,它为应用提供了更强大的访问底层资源的能力
主要方法
boolean exists()判断资源是否存在
boolean isOpen() 判断资源是否已经打开
URL getURL() 如果底层资源可以表示成URL,那么该方法返回URL对象
File getFile() 如果底层资源对应一个文件,那么该方法返回对应的文件对象
InputStream getInputStream()返回资源对应的输入流
具体实现类
ByteArrayResource
ClassPathResource
FileSystemResource
InputStreamResource
ServletContextResource
UrlResource
为了访问不同类型的资源,必须使用相应的Resource实现类,这是比较麻烦的,Spring提供了一个强大的加载资源的机制,能够自动识别不同的资源类型。
资源类型地址前缀
classpath 从类路径中加载资源 classpath:com/jike/bean.xml
File file:/com/jike/bean.xml
http:// http://www.jike.com/bean.xml
ftp ftp://www.jike.com/bean.xml
无前缀 com/jike/bean.xml
Ant风格的匹配符
?:匹配文件名中的一个字符
*:匹配文件名中的任意字符
**:匹配多层路径
Ant风格的资源路径示例
Classpath:com/t*st.xml
File:D:/conf/*.xml
Classpath:com/**/test.xml
Classpath:org/springframework/**/*.xml
Spring定义了一套资源加载的接口,并提供了实现类,如下