您的位置:首页 > 编程语言 > Java开发

Spring IOC

2015-09-27 00:24 393 查看
IOC:其思想是反转资源获取的方向。传统的资源查找方式是要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源。而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为被称为查找的被动形式。

DI是IOC的另一种表述方式:即组件以一些预定义好的方式接受来自容器的资源注入。

Bean配置:

class属性:bean的全类名,通过反射在IOC容器中创建Bean,所以要求在Bean中必须有无参的构造函数。

id属性:标识容器中的Bean,id值唯一。

Bean的注入方式:

属性注入:通过setter方法注入Bean的属性值或依赖的对象,属性注入使用property元素,使用name属性指定Bean的属性名称,value属性或value子节点指定属性的值。

特殊属性值用
<![CDATA[属性值]]>
包裹起来

ref属性:引用Bean,建立Bean之间的引用关系;

为级联属性赋值,必须先初始化,再为级联属性赋值。

使用list节点为list属性赋值;

使用map节点为map属性赋值,map中使用entry节点加上value-ref和key属性赋值。

配置单例的集合bean,可以引用util命名空间,使用util:list子节点配置。

还可以使用P命名空间为Bean属性赋值,
p:属性=属性值,或者 p:属性-ref=其他Bean的id


构造器注入:constructor-arg标签;

Spring 容器:

ApplicationContext可以被称为Spring容器。在SpringIOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化。只有在容器实例化之后,才可以从IOC容器里获取Bean实例并使用。

Spring提供了两种类型的IOC容器实现。

1.BeanFactory:IOC容器的基本实现,是Spring框架的基础设施,面向的是Spring本身,可以说是Spring的心脏。

2.ApplicationContext:提供了更多的高级特性,是BeanFactory的子接口,是面向使用Spring框架的开发者,几乎所有的应用场合都可以直接使用ApplicationContext而不是底层的BeanFactory。

ApplicationContext:



从图中看出ApplicationContext类主要有两个实现类,分别是

1.ClassPathXmlApplicationContext:从类路径下加载配置文件

2.FileSystemXmlApplicationContext:从文件系统中加载配置文件

ConfigurableApplicationContext接口继承自ApplicationContext接口,它增加了两个主要的方法:close();和refresh();,让ApplicationContext具有启动,刷新和关闭上下文的能力。

ApplicationContext在初始化上下文时就实例化所有的单例的Bean。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: