Spring初级容器初始化:Resource到底是个什么玩意儿

21 阅读1分钟

image.png
可以看到,Spring配置文件applicationContext.xml就被封装成了ClassPathResource。

image.png 根据这个类继承图,可以看到,ClassPathResource就是一个实现了Resource接口的实现类而已,和ClassPathResource类似的还有UrlResource、FileSystemResouce、ByteArrayResource和InputStreamResource,都实现了Resource接口,而Resource接口又实现了InputStreamSource接口。

=========================================================

Resource和InputStreamSource

什么是Resource接口,Spring统一把所有使用到的资源都抽象成了Resource,不同来源的资源对应着不同的Resource实现类。
Resource接口,都有哪些方法:

image.png

可以看到,在Resource接口中,首先它定义了对资源状态判断的方法,如exist方法判断资源是否存在、isFile方法判断资源是否是文件类型的、isOpen方法判断资源是否处于打开的状态、isReadable方法判断资源是否是可读状态的。

image.png

=========================================================

InputStreamSource接口是什么呢?

image.png

可以看到,InputStreamSource接口中只有一个方法getInputStream,而且方法返回的就是一个输入流InputStream。

image.png

image.png

image.png

image.png

image.png

image.png