Spring Resource接口说明
在Spring中Resource接口有着相当广泛的使用。Spring在加载配置文件时候,都是基于Resource接口加载的。此接口抽象程度比较高,是Spring的辅助重要接口之一。
我们先看下Spring中此接口的类图。
Spring把对资源的访问高度封装,从实现类可以看到,可以从Url地址,本地文件系统,Classpath路径,二进制流获取到对应的Resource对象。当然,理解以上类图,我们自己也可以简单的实现一个DBResource,从数据库获取资源。
- ByteArrayResource: 创建ByteArrayInputStream提供资源访问,支持读取多次
- DescriptiveResource:不提供资源访问的实现类,一般用于API参数传递,但实际不读取的情况使用。(个人感觉没什么用)
- FileSystemResource: 以本地文件提供资源,参考FileInputStream
- AbstractFileResolvingResource: 提供url地址解析,从地址路径加载InputStrem。比如:Http网络, DFS协议地址, VFS协议地址,jar包中等
- UrlResource: Url地址解析并获取输入,如:http//, file://
- ClassPathResource: 从当前classpath路径获取输入,参考ClassLoader.getResourceAsStream