BeanFactory
BeanFactory采用的是工厂设计模式,这个类负责创建和分发Bean,但是和往常工厂模式不同的是,BeanFactory是一个通用工厂,可以创建和发布各种类型的bean。
BeanFactory除了实例化和发布应用对象以外,还负责创建协作对象间的关联关系,这样就把负担从bean自身以及bean的调用者中脱离出来。
BeanFactory最简单的实现XmlBeanFactory,根据xml中的配置装载Bean,它需要一个Resource实例给构造函数。
下面是所有的Resource
ByteArrayResource 定义内容由一组字节给定的资源
ClassPathResource 定义一个可以从classpath提取的资源
DescriptiveResource 定义包含资源描述符但是没有实际可读资源的资源
FileSystemResource定义可以从文件系统提取的资源
InputStreamResource定义可以从输入流提取的资源
PortletContextResource定义可以用在PortletContext中的资源
ServletContextResource定义可以用在ServletContext中的资源
UrlResource定义可以给定URL提取的资源
例如使用ClassPathResource 来创建XmlBeanFactory:


这句代码的意思是说 BeanFactory 从xml中得到信息,但并没有马上就实例化Bean,Bean被延迟载入到BeanFactory 中,是要在真正使用的时候才会实例化Bean。


这样就获得了一个bean并使用它,这是才会被实例化并使用依赖注入设置bean的属性。