Spring的配置文件是经过ClassPathResource来进行封装的,在Java中,不一样的资源抽象成URL,经过注册不一样的handle来处理不一样的URL获取逻辑,通常的handle类型经过使用不一样的前缀来来识别,好比file;http等,能够注册本身的URLStreamHandle来处理特定的前缀的文件,然而这须要检查当前的资源是否存在等。
对于不一样的文件,Spring有不一样的实现方式。数组
好比说,在系统中,咱们能够使用
Resource re = new ClassPathResource("bean.xml");
InputStream in = re.getInputStream();获得InputStream的实例以后,就能够使用Resource及其子类提供的方法,进行相应的功能的开发了。spa
ClassPathResource : 类路径下的资源文件,使用classLoader或class加载资源,
支持文件系统下的资源以类路径,URL等方式加载资源,可是不支持jar包里面的资源。xml
ClassRelativeResourceLoader:将绝对路径下的资源解释为相对路径,给相应的类加载接口
UrlResource:URL定位的Resource资源的实现,支持URL路径或protocol协议下的文件ip
AbstractFileResolvingResource:用于加载UrlResource或ClassPathResource的路径
资源类的抽象基类。资源
DescriptiveResource:一个实现描述资源但不是一个真实资源的URL实现。开发
FileSystemResource:一个实现文件处理的资源实现,支持文件或URL,实现WriteResource接口get
ByteArrayResource:一个实现字节数组的资源实现,为字节资源建立ByteArrayInputStreamit
AbstractResource:一个公共的抽象接口类供调用,这个exists方法用于检查是否一个文件或
输入资源是否存在,isOpen老是返回false,toString方法返回描述。class