bean的配置管理与applicationcontext的特性

上传人:san****019 文档编号:70866030 上传时间:2019-01-18 格式:PPT 页数:36 大小:1.13MB
返回 下载 相关 举报
bean的配置管理与applicationcontext的特性_第1页
第1页 / 共36页
bean的配置管理与applicationcontext的特性_第2页
第2页 / 共36页
bean的配置管理与applicationcontext的特性_第3页
第3页 / 共36页
bean的配置管理与applicationcontext的特性_第4页
第4页 / 共36页
bean的配置管理与applicationcontext的特性_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《bean的配置管理与applicationcontext的特性》由会员分享,可在线阅读,更多相关《bean的配置管理与applicationcontext的特性(36页珍藏版)》请在金锄头文库上搜索。

1、第二章,Bean的配置管理与ApplicationContext的特性,2,回顾,掌握Spring各种抽象术语 掌握Ioc及DI思想 了解依赖注入各种方式 配置Spring环境,编写简单Spring应用程序,3,目标,熟悉BeanFactory与ApplicationContext的运用 了解Spring容器进行各种Bean的配置与管理 了解ApplicationContext的特性,4,Bean基本管理,BeanFactory接口 负责读取Bean定义文件,管理对象的加载、生成;维护Bean对象与Bean对象之间的依赖关系;负责Bean的生命周期。,BeanFactory ,bean-con

2、fig.xml,Spring IoC容器,bean-config.xml,bean-config.xml,Bean对象唯一,5,BeanFactory接口,方法:,6,示例,使用标签的name属性 来设置 别名,多个别名之间 以逗号隔开。,beans-config.xml,7,代码分析,8,ApplicationContext,ApplicationContext是基于BeanFactory建立的,具备其特点之外,还提供一个应用程序所需的更完整的框架功能。,提供方便地取得资源文件方法; 提供解析文字消息的方法; 支持国际化消息 可以发布事件,对事件感兴趣的Bean可以接收 到这些事件,Spri

3、ng的创始者Rod Johnson建议:使用ApplicationContext代替BeanFactory,在实现ApplicationContext接口的类常用: org.springframework.context.support.ClassPathXmlApplicationContext,9,示例-1,在项目中加入spring-context.jar,10,示例-2,项目中有多个定义文件,如下:,11,代码分析-1,ApplicationContext可以读取多个Bean定义文件,以数组 指定Bean定义文件的位置。,12,代码分析-2,可以使用标签导入多个资源文件,注意其位置,13

4、,Bean的实例化,Spring使用默认构造方法,Spring使用set方式注入,注意: 如果使用BeanFactory,只有在使用getBean()方法真正取得bean时,才会做 实例化的动作; 如果使用ApplicationContext,会预先针对Bean定义文件的内容,将所有的Bean 实例化。如果不希望这样,可以在上设置属性”lazy-init”为true, ApplicationContext就不会在启动时针对该Bean做实例化的动作。,14,Bean的scope,用的属性“scope”来设置以下值范围: singleton:默认表示每一个Bean名称只维持一个实例 prototy

5、pe:表示每次指定名称来取得Bean时,都会产生一个新的实例 request session globalSession,也可以通过的属性”singleton”属性为true或false,Web应用程序,15,Bean的生命周期,Bean初始化,Bean使用,Bean销毁,BeanNameAware,setBeanName(),BeanFactoryAware,setBeanFactory(),BeanPostProcessor,postProcessBeforeInitialization(),postProcessAfterInitialization(),在Bean定义 文件中定义 in

6、it-method 属性设置初始 化方法,修正Bean相关属性,BeanFactory通过 读取定义文件来 初始化所有Bean,ApplicationContext 使用时 将Spring-context.jar 加载,DisposableBean,destroy(),在定义文件 中设置属性 destroy-method,16,示例,设计PersonBean,其属性pname(String)和page(int),在Spring的配置文件中设置 的属性”init-method”,将Person的实例属性page初始为18;同时要求在初始化 之前要修正pname的值都要大写。,为属性init-me

7、thod提供方法,17,代码分析,注意:ApplicationContext会自动侦测是否在定义文件中定义了 实现BeanPostProcessor接口的类,Spring容器会在每一个Bean被初始化之前、之后 分别执行方法,18,结果,19,Bean定义的继承,在Bean定义文件中,可以设置属性abstract=“true”,表示这是抽象的Bean定义,Spring不会实例化它;在要继承中设置属性parent=“抽象Bean”,问题:在定义文件中可以不用abstract属性 直接继承某个bean定义吗?,20,Bean的依赖设置,方式:Type 2 IoC 与Type 3 IoC(利用构造方

8、法依赖注入),21,运行结果,注意:在定义文件中,使用标签来表示将使用Constructor Injection,必须依照构造参数的顺序。或者 指定索引位置,“index”属性用于指定对象将注入至构造方法中哪一个位置的参数,参数索引位置从0开始。 Spring会自动解析构造方法上的参数类型及所设置的依赖注入,用以决定使用哪个构造方法。,22,依赖值设置与参考,在定义文件中,如果设置某个属性为null,使用标签;如果设置字符串为 空串: Spring中使用引用其他Bean, 表示引用一个id或name,这个bean可以在同一 个xml文件中,也可以不在当前xml文件中;不在同一文件中,使用 im

9、port来引入其他配置文件;, 表示引用当前xml文件中的id,使用内部Bean,不需要id,只能在此处使用。,23,示例,24,集合注入,对于数组、List、Set、Map等集合对象,在注入前必须填充入一些对象至集合中,然后将集合对象注入到所需的Bean,也可以由IoC容器来完成集合对象的注入; 对于数组或List类型的依赖注入,在定义文件中使用标签;对于Map类型,使用标签,但要用表示key。对于Set类型,使用标签; 若要注入的是properties类型,使用标签,25,示例,26,代码分析,27,结果,28,标签,Spring2.0可以新增标签进行扩充,使用、 、取代简化集合的配置。

10、在使用之前在配置文件中加入util的命名空间。 示例:利用标签改写上述配置文件,29,代码分析,添加util命名空间配置,若不指定,由容器自行决定 实现的容器对象,30,资源、消息、事件,Spring提供了对资源存取的接口: org.springframework.core.io.ResourceLoader ApplicationContext继承该接口,使用getResource()方法来取得资源 解析文字消息 ApplicationContext继承接口 org.springframework.context.MessageSource接口,使用 getMessage()获得文字消息,从

11、而实现国际化消息的目的。,Resource res=context.getResource(“classpath:message.properties”);,31,示例,利用接口MessageSource的一个实现类ResourceBundleMessageSource来取得国际化消息,32,运行结果,33,事件监听与发布,在Spring应用程序执行期间,ApplicationContext本身就会发布一连串的事件,这些事件都是抽象类ApplicationEvent的子类 如果对事件感兴趣,实现接口ApplicationListener,并在定义文件中定义实现该接口的一个Bean实例 如果发布事件通知ApplicationListener的实例,可以使用 ApplicationContext的publishEvent()方法,public interface ApplicationListener extends EventListener void onApplicationonEvent(ApplicationEvent event); ,34,示例,35,运行结果,36,总结,熟悉BeanFactory与ApplicationContext的运用 了解Spring容器进行各种Bean的配置与管理 了解ApplicationContext的特性,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号