Spring IOC

来源:互联网 发布:手机蝴蝶恶作剧软件 编辑:程序博客网 时间:2024/06/01 16:31

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。

0 0