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

Spring的控制反转(IoC)和依赖注入(DI)

2014-09-19 11:14 831 查看
一、IoC----Spring容器根据配置文件信息,负责创建JavaBean(PO)实例,并为实例设置属性值-这种由Spring容器为对象设置属性的方式被称为控制反转(Inversion of Control,IoC)。(实例属性值并不是程序主动设置的,而是由Spring容器来负责注入的).

根据配置文件来创建Bean实例,并调用Bean实例的方法完成“依赖注入”---这就是所谓Ioc的本质

不管是依赖注入还是控制反转,其意义完全相同:当某个java实例(调用者)需要另一个java实例(被调用者)时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。

在依赖注入的模式下,创建被调用者的工作不再由调用者来完成而是通常由Spring容器来完成。因此称为控制反转;

创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。

二、实例化BeanFactory

①//搜索类加载路径,以类加载路径下的bean.xml文件创建Resource对象

ClassPathResoure res = new ClassPathResource("bean.xml");;

//以Resource对象为参数,创建BeanFactory实例

XmlBeanFactory factory = new XmlBeanFactory(res);

②//搜索当前文件路径下的bean.xml文件创建Resource对象

InputStreamResource isr = new FileSystemResource("bean.xml");

//以Resource对象为参数,创建BeanFactory实例

XmlBeanFactory factory = new XmlBeanFactory(isr);

二、创建AppliactionContext实例的方法

1、AppliactionContext ctx = new ClassPathXmlAppliactionContext("bean.xml");

//获取XX实例

XX xx = ctx.getbean("XX",XX.calss);

Spring容器最基本的接口就是BeanFactory。BeanFactory负责配置、创建、管理Bean,它有一个子接口:ApplictionContext,因此也被称为Spring的上下文。Spring容器还负责管理Bean和Bean之间的依赖关系。

BeanFactory接口包含如下几个基本方法。

boolean containsBean(String name):判断Spring容器是否包含id为name的Bean实力

Object getBean(String name):返回容器id为name的Bean实力

<T> t getBean(Class<t> requriredType):获取Spring容器中属于requriredType类型的、唯一的Bean实例

<T> t getBean(Class<t>,Class requriredType):返回容器中id为name,并且类型为requriredType的Bean实例

Class<?> getType(String name):返回容器中指定Bean实例的类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: