关于资源加载。Spring抽像了两个接口。分别是
Resource 和ResourceLoader,作用分别是
Resource:所有资源的抽像和访问接口
ResourceLoader:是用于定位和查找Resource的资源。配合Resource来使用
通过Resource 接口来扩展不同类型的资源查询类,比如Spring实例的
ByteArrayResource
ClassPathResource
FileSystemResource
等常用资源,想获得指定的Resource,只需要用指定的工厂创建即可
例:
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("..."));
ClassPathResource是指导位于Classpath里面的资源
ResourceLoader有一个默认的实现DefaultResourceLoader。你可以理解为他是一个加载资源的模板方法。他抽像了
加载资源的一些前置动作,然后不同的资源加载类继承了DefaultResourceLoader来做为资源加载的具体,如常用的
FileSystemResource
FileSystemXmlAppliactionContext
都重写了DefaultResourceLoader类的getResourceByPath方法。
见类结构图