1 / 37
文档名称:

第19章 Spring的IoC.ppt

格式:ppt   页数:37
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第19章 Spring的IoC.ppt

上传人:中国课件站 2011/11/16 文件大小:0 KB

下载得到文件列表

第19章 Spring的IoC.ppt

文档介绍

文档介绍:第19章 Spring的IoC
本章将详细深入地探讨Spring框架的控制反转实现(Inversion of Control,IoC)原理。Spring框架所提供的众多功能之所以能成为一个整体,正是创建在IoC的基础之上,因此对这一内涵简单、外延丰富的技术有必要进行详细的介绍。
Bean工厂
IoC容器的实际代表者,IoC容器负责容纳此前所描述的bean,并对bean进行管理。如图所示,Spring中IoC容器就是对象的加工厂,可以按照元数据填充和组装Java对象。
创建Bean工厂
在Spring中,BeanFactory是IoC容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及创建这些对象间的依赖。
从本质上讲,BeanFactory仅仅只是一个维护bean定义以及相互依赖关系的高级工厂接口。通过BeanFactory可以访问bean定义。Spring提供了许多易用的BeanFactory实现,XmlBeanFactory就是最常用的一个。该实现将以XML方式描述组成应用的对象以及对象间的依赖关系。XmlBeanFactory类将持有此XML配置元数据,并用它来构建一个完全可配置的系统或应用。
使用多个文件
将XML配置文件分拆成多个部分是非常有用的。为了加载多个XML文件生成一个ApplicationContext实例,可以将文件路径作为字符串数组传给ApplicationContext构造函数。而bean factory将通过调用bean defintion reader从多个文件中读取bean定义。
通常情况下,Spring团队倾向于上述做法,因为这样各个配置并不会查觉到它们与其他配置文件的组合。另外一种方法是使用一个或多个的<import/>元素来从另外一个或多个文件加载bean定义。
获取Bean
就Spring IoC容器而言,bean定义基本上描述了创建一个或多个实际bean对象的内容。当需要的时候,容器会从bean定义列表中取得一个指定的bean定义,并根据bean定义里面的配置元数据使用反射机制来创建一个实际的对象。
当使用基于XML的元数据配置文件,可以这样来指定bean类:
<bean id="exampleBean" class=""/>
<bean name="anotherExample" class=""/>
BeanFactory的其它方法
除了getBean()方法可以取得bean的实例;BeanFactory还提供其他的方法供客户代码调用:
boolean containsBean(String):如果BeanFactory包含给定名称的bean定义(或bean实例),则返回true。
Object getBean(String):返回以给定名字注册的bean实例。根据bean的配置情况,如果为singleton模式将返回一个共享的实例,否则将返回一个新建的实例。如果没有找到指定的bean,该方法可能会抛出BeansException异常(实际上将抛出NoSuchBeanDefinitionException异常),在对bean进行实例化和预处理时也可能抛出异常
BeanFactory的其它方法
Object getBean(String, Class):返回以给定名称注册的bean实例,并转换为给定class类型的实例,如果转换失败,相应的异常(BeanNotOfRequiredTypeException)将被抛出。上面的getBean(String)方法也适用该规则。
Class getType(String name):返回给定名称的bean的Class。如果没有找到指定的bean实例,则抛出NoSuchBeanDefinitionException异常。
boolean isSingleton(String):判断给定名称的bean定义(或bean实例)是否为singleton模式(singleton将在bean的作用域中讨论),如果bean没找到,则抛出NoSuchBeanDefinitionException异常。
String[] getAliases(String):返回给定bean名称的所有别名。
配置Bean
在Spring中,那些组成应用的主体(backbone)及由Spring IoC容器所管理的对象被称之为bean。简单地讲,bean就是由

最近更新

2025年内江职业技术学院单招职业技能测试模拟.. 41页

2025年包头职业技术学院单招职业适应性考试模.. 40页

2025年北京科技大学天津学院单招职业倾向性测.. 39页

2025年南宁职业技术学院单招职业倾向性考试模.. 40页

2025年南阳工艺美术职业学院单招职业适应性测.. 40页

2025年合肥滨湖职业技术学院单招综合素质考试.. 41页

2025年哈密职业技术学院单招职业倾向性考试模.. 40页

2025年哈尔滨电力职业技术学院单招职业适应性.. 41页

2025年唐山科技职业技术学院单招职业技能考试.. 38页

2025年四川化工职业技术学院单招职业适应性测.. 43页

2025年四川文化产业职业学院单招职业倾向性测.. 39页

2025年四川西南航空职业学院单招职业倾向性测.. 39页

2025年塔城职业技术学院单招职业适应性测试模.. 40页

2025年大理农林职业技术学院单招职业技能考试.. 41页

2025年大连装备制造职业技术学院单招职业适应.. 40页

2025年天津市单招职业倾向性考试模拟测试卷汇.. 40页

2025年天门职业学院单招职业倾向性测试题库推.. 39页

2025年宁夏建设职业技术学院单招职业倾向性考.. 41页

2025年宁德职业技术学院单招职业倾向性测试题.. 41页

2025年宁波幼儿师范高等专科学校单招职业适应.. 41页

2025年安康职业技术学院单招职业技能考试模拟.. 41页

2025年安徽医学高等专科学校单招职业技能测试.. 39页

2025年安徽审计职业学院单招职业倾向性测试题.. 42页

2025年安徽扬子职业技术学院单招综合素质考试.. 40页

2025年重庆市《保安员证》考试题库含答案 39页

预防滑倒、绊倒及跌落专题培训课件 45页

混凝土工程培训课件优秀PPT 26页

小学数学六年级下册《鸽巢问题》作业设计 9页

国开《建筑力学》期末机考答案 15页

住院患者自带药品使用管理规定通知 3页