jdk所提供的访问资源的类并不能很好的满足各种底层资源的访问需求,因此,Spring设计一个Resource接口,它为应用提供了更强大的访问底层资源的能力:
主要方法:1.boolean exists():判断资源是否存在
2.boolean isOpen():判断资源是否打开
3.URL getURL():如果底层资源可以表示成URL,该方法返回对应的url对象
4.File getFile():如果底层资源对应一个文件,返回对应的file对象
5.InputStream getInputStream():返回资源对应的输入流
具体实现类:1.ByteArrayResource:二进制数组表示的资源
2.ClassPathResource:类路径下的资源
3.FileSystemresource:文件系统资源
4.InputStreamResource:对应一个inputStream资源
5.ServletContextresource:主要是为了访问web容器的上下文资源而设计的。
6.UrlResource:封装了java.net.url,使得用户能访问所有可以通过url表示的资源。如,文件系统的资源,http的资源等。
为了访问不同类型的资源,必须使用相应的Resource实现类,这是比较麻烦的。因此Spring提供了一个强大的加载资源的机制,能够通过classpath、file等资源地址前缀自动识别不同的资源类型:
1、资源类型地址前缀:(1)classpath classpath:com/hp/bean.xml
(2)file file:/com/hp/bean.xml
(3)http:// http://www.hp.com/bean.xml
(4)ftp ftp://www.hp.com/bean.xml
(5)无前缀 com/hp/bean.xml
2、ant风格的匹配符:(1)?:匹配文件名中的一个字符
(2)*:匹配文件名中的任意字符
(3)**:匹配多层路径。示例:classpath:com/h*.xml classpath:com/**/test.xml
spring定义了一套资源加载的接口,并提供了实现类: