Spring资源访问设计与策略模式应用

  Spring把所有记录信息的载体,例如各种类型的文本配置文件,二进制文件, 网络资源等都统一做了一个高度的抽象,称为资源(Resources)。Spring中最常见的就是xml配置文件和properties配置文件。
  Spring为资源访问提供了Resource接口,该接口提供了强大的资源范问能力,例如检查资源是否存在,获取资源对应的文件等。
Resource提供了一系列资源访问方法

  1. boolean exists(); 判断资源是否存在
  2. InputStream getInputStream(); 定位并打开资源,返回资源对应的输入流。每次调用都返回新的输入流。调用者必须负责关闭输入流
  3. boolean isOpen(); 返回资源文件是否打开,如果资源文件不能多次读取,每次读取结束应该显式关闭,以防止资源泄漏
  4. URL getURL(); 获取网络资源的URL
  5. File getFile(); 资源对应的文件对象 ·
  6. String getFilename(); 获取资源对应的文件名

Resource没有提供访问任何底层资源的实现逻辑。针对不同的底层资源,Spring提供不同的Resource实现类,不同的实现类负责不同的资源访问逻辑。
Resource不仅仅是在Spring中使用,也可以单独作为资源访问的工具。虽然这样会使代码与Spring有一定耦合,但这只是对一小块模块的依赖,不会造成太大的代码污染。

Resource实现类

Resource本身不提供具体的资源访问逻辑,针对不同的资源,Spring提供了不同的Resource实现类来处理不同的资源处理逻辑。
Spring提供了如下几种Resource实现类

  • UrlResource 负责访问网络资源,通常以http、ftp为地址前缀
  • ClassPathResource 负责访问类路径下的资源,例如以classpath*开头的
  • FileSystemResource 负责访问本地文件系统的资源
  • ByteArrayResource 负责访问字节组形式的资源
  • ByteArrayResource 负责访问输入流的资源
    这些实现类,针对不同的底层资源,提供了不同的访问逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值