上图是spring resource接口核心的类体系结构具体如下:
1、InputStreamSource 作为一个主接口不继承任何接口,暂且成为一级接口或顶级接口
2、有一个子接口继承它,进行功能上的增强,我们称这个接口为二级接口
3、AbstractResource、BaseResource抽象类实现了resource;而ContextResource继承了resource,我们称之为三级接口,是对二级接口resource进行功能上的增强,增加了上下文的功能
4、ByteArrayResource(字节数组资源)、FileSystemResource(文件系统资源)、InputStreamResource(输入流资源)、抽象类AbstractFileResolvingResource等类直接继承AbstractResource抽象类
5、ClassPathResource、UrlResource类直接实现AbstractFileResolvingResource类
截止以上类都是spring IO操作类的基本功能
6、ServletContextResource、FileSystemContextResource、ClassPathContextResource、ClassRelativeContextResource继承了AbstractFileResolvingResource同时实现了ContextResource上下文,使他们既有基础操作功能同时也有获取上下文资源文件的功能
本人在码云上提交了关于阅读spring源码之后编写的一些基础模块的实现,https://git.oschina.net/73hulu/spring.git 望大家不吝给颗星star,谢谢大家