Resource接口
Spring将所有形式的资源表现概括成一个Resource接口。如下所示(下面的接口定义是被简化的,有意省略了一些东西,以便突出重点):
public interface Resource {
InputStream getInputStream();
URL getURL();
File getFile();
boolean exists();
}
Resource接口向应用程序屏蔽了资源表现形式的多样性。于是,前面例子中的ConfigReader就可以被简化成下面的样子:
public interface ConfigReader {
Object readConfig(Resource configResource);
}
事实上,Spring正是利用Resource接口来初始化它的ApplicationContext的
public abstract class AbstractXmlApplicationContext extends ... {
...
protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) {
Resource[] configResources = getConfigResources();
...
}
protected Resource[] getConfigResources();
}