
正文
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.注意,理解上面这段话需要很好地区分 FactoryBean 和 BeanFactory 这两个在 Spring中使用频率很高的类 ,它们在拼写上非常相似。
5. 一个是Factory,也就是IoC容器或对象工厂 ; 一个是Bean 。
6.在Spring中,所有的Bean都是由BeanFactory(也就是IoC容器)来进行管理的。
7.但对FactoryBean而言,这个Bean不是简单的Bean, 而是 一个 能产生 或者 修饰对象生成 的 工厂Bean ,它的 实现 与设计模式中的 工厂模式 和 修饰器 类似。







