Spring IoC容器的设计——BeanFactory应用场景

1.BeanFactory提供的是最基本IoC容器的功能,关于这些功能定义,我们可以在接口BeanFatory中看到

2.BeanFactory接口定义了IoC容器最基本的容器的形式,并且提供了IoC容器所应该遵守最基本的服务契约,同时,这也是我们使用IoC容器所应遵守的最底层最基本编程规范,这些接口定义勾画出了IoC的基本轮廓

3.很显然,在Spring的代码实现中,BeanFactory只是一个接口类,并没有给出容器的具体实现,而我们在图中看到的各种具体类,比如DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等都可以看成容器附加了某种功能具体实现,也就是容器体系中的具体容器产品

下面我们来看看BeanFactory是怎样定义IoC容器的基本接口的

1.用户使用容器时,可以使用转义符"&"来得到FactoryBean本身用来区分通过容器来获取FactoryBean产生的对象获取FactoryBean本身

2.举例来说,如果myJndiObject是一个FactoryBean,那么使用&myJndiObject得到的是FactroyBean,而不是myJndiObject这个FactoryBean产生出来的对象

3.关于具体的FactoryBean设计实现模式,我们会在后面的章节中介绍

4.注意,理解上面这段话需要很好地区分FactoryBeanBeanFactory这两个在Spring中使用频率很高的类,它们在拼写上非常相似。

5.一个是Factory,也就是IoC容器或对象工厂一个是Bean

6.在Spring中,所有的Bean都是由BeanFactory(也就是IoC容器)来进行管理的。

7.但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能产生或者修饰对象生成工厂Bean,它的实现与设计模式中的工厂模式修饰器类似。

posted @ 2014-08-28 14:40  行者无疆Duffy  阅读(2107)  评论(0编辑  收藏  举报