Spring系列之三——Spring体验中IOC使用的介绍
Spring框架对控制反转(Inversion of Control,IoC)进行了实现。
Spring IOC容器管理的对象被称作bean,使用IOC,对象的依赖都是在对象创建时由负责协调系统中各个对象的外部实体提供的。
在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。
org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,IoC容器负责容纳此前所描述的bean,并对bean进行管理。
在Spring中,BeanFactory是IoC容器的核心接口。 它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。
Spring为我们提供了许多易用的BeanFactory实现, XmlBeanFactory就是最常用的一个。该实现将以XML方式描述组成应用的对象 以及对象间的依赖关系。XmlBeanFactory类将获取此XML配 置元数据,并用它来构建一个完全可配置的系统或应用
SpringIOC的使用减少了对象之间依赖的高度耦合。

上图为Spring中IOC容器的原理图。
在Spring中IOC容器可以通过读取配置的元数据来对各个对象(Bean)进行实例化、配置以及装载,而通常在Spring中是使用XML文档来描述元数据的。
在IoC容器中至少都会有一个Bean描述,但往往会有多个Bean的描述,而Bean的定义也非常广泛,包括业务层,服务对象,表示层对象等。
以下为一个基于XML的配置元数据的基本结构(即Spring体验中的applicationContext.xml文件):
该类继承的接口GreetingService:
那么何为Spring的IoC控制反转呢?我们来创建一个JUnit测试类:
在测试类中我们看到想要实现IoC的控制反转,首先应该加在容器:加在容器的写法有以下几种:
打的招呼是:你好!
?
请注意:因为刚使用ITEYE博客,对其FCK的排版使用不是很熟悉,所以请大家复制代码的时候把其中的HTML<span></span>标签去掉,在这里大家见谅。
?
1 楼 crazyban 2011-04-26 很好,继续关注