DefaultListableBeanFactory:它提供了解析属性文件中的bean定义的能力,可通过编程创建BeanFactory。
每个bean 定义能被当作一个POJO(用类名和JavaBean 初始属性或构造方法参数来定义),或被当作一个FactoryBean。FactoryBean接口添加了一个间接层。一般,这用来创建用AOP 或其他方法的代理对象:例如,添加声明性事物管理的代理。这在概念上和EJB 的拦截机制相近,但实践起来更方便,更有效。
BeanFactory 能选择性地参与于一个层次结构中,“继承”先辈的定义。这使得像控制器servlet 这样的个体资源能拥有自己的独立对象集的同时,在整个应用程序中能共享公共配置。
如此使用JavaBeans 的动机在《Expert One-on-One J2EE Design and Development》的第四章中已经描述过了,你同样也可以在theServerSide 站点上以免费PDF 的形式获得(http://www.theserverside.com/tt/articles/article.tss?l=RodJohnsonInterview)。
通过bean工厂的概念,Spring成为了一个控制反转容器。(我不太喜欢容器这个词,因为它令人想起了类似EJB容器的重量级容器。一个Spring的BeanFactory是一个能用一行代码创建,无需特别部署的容器。)Spring用了名为依赖注入(Dependency Injection, DI)的控制反转,依赖注入是由Martin Fowler、Rod Johnson和PicoContainer 团队在2003 年底命名的。