IoC容器初始化包括:Bean定义资源文件的定位、载入和注册3个基本过程
ClassPathResource resource = new ClassPathResource("beans.xml");
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(resource);
Resource,InputStreamSource的源代码
public interface Resource extends InputStreamSource {
boolean exists();
boolean isReadable();
boolean isOpen();
URL getURL() throws IOException;
URI getURI() throws IOException;
File getFile() throws IOException;
long contentLength() throws IOException;
long lastModified() throws IOException;
Resource createRelative(String relativePath) throws IOException;
String getFilename();
String getDescription();
}
public interface InputStreamSource {
InputStream getInputStream() throws IOException;
}
Resource的结构体系
为什么要定义Resource
这里的Resource其实和第一讲的BeanFactory有着异曲同工之妙,先定义好规范,让子类去扩展将功能完善!这里不做详细介绍了,简单的讲一下Resource的四个子类
1.ClassPathResource:通过 ClassPathResource 以类路径的方式进行访问;
2.FileSystemResource:通过 FileSystemResource 以文件系统绝对路径的方式进行访问;
3.ServletContextResource:通过 ServletContextResource 以相对于Web应用根目录的方式进行访问。
4.UrlResource :通过java.net.URL来访问资源,当然它也支持File格式,如“file:”