可以看到,Spring配置文件applicationContext.xml就被封装成了ClassPathResource。
根据这个类继承图,可以看到,ClassPathResource就是一个实现了Resource接口的实现类而已,和ClassPathResource类似的还有UrlResource、FileSystemResouce、ByteArrayResource和InputStreamResource,都实现了Resource接口,而Resource接口又实现了InputStreamSource接口。
=========================================================
Resource和InputStreamSource
什么是Resource接口,Spring统一把所有使用到的资源都抽象成了Resource,不同来源的资源对应着不同的Resource实现类。
Resource接口,都有哪些方法:
可以看到,在Resource接口中,首先它定义了对资源状态判断的方法,如exist方法判断资源是否存在、isFile方法判断资源是否是文件类型的、isOpen方法判断资源是否处于打开的状态、isReadable方法判断资源是否是可读状态的。
=========================================================
InputStreamSource接口是什么呢?
可以看到,InputStreamSource接口中只有一个方法getInputStream,而且方法返回的就是一个输入流InputStream。