Bean的配置管理与ApplicationContext的特性.ppt

上传人:牧羊曲112 文档编号:6502161 上传时间:2023-11-07 格式:PPT 页数:36 大小:726KB
返回 下载 相关 举报
Bean的配置管理与ApplicationContext的特性.ppt_第1页
第1页 / 共36页
Bean的配置管理与ApplicationContext的特性.ppt_第2页
第2页 / 共36页
Bean的配置管理与ApplicationContext的特性.ppt_第3页
第3页 / 共36页
Bean的配置管理与ApplicationContext的特性.ppt_第4页
第4页 / 共36页
Bean的配置管理与ApplicationContext的特性.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Bean的配置管理与ApplicationContext的特性.ppt》由会员分享,可在线阅读,更多相关《Bean的配置管理与ApplicationContext的特性.ppt(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-config.xm

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

3、hnson建议:使用ApplicationContext代替BeanFactory,在实现ApplicationContext接口的类常用:,9,示例-1,在项目中加入spring-context.jar,10,示例-2,项目中有多个定义文件,如下:,11,代码分析-1,ApplicationContext可以读取多个Bean定义文件,以数组指定Bean定义文件的位置。,12,代码分析-2,可以使用标签导入多个资源文件,注意其位置,13,Bean的实例化,Spring使用默认构造方法,Spring使用set方式注入,注意:如果使用BeanFactory,只有在使用getBean()方法真正取得

4、bean时,才会做实例化的动作;如果使用ApplicationContext,会预先针对Bean定义文件的内容,将所有的Bean实例化。如果不希望这样,可以在上设置属性”lazy-init”为true,ApplicationContext就不会在启动时针对该Bean做实例化的动作。,14,Bean的scope,用的属性“scope”来设置以下值范围:singleton:默认表示每一个Bean名称只维持一个实例 prototype:表示每次指定名称来取得Bean时,都会产生一个新的实例 request session globalSession,也可以通过的属性”singleton”属性为tru

5、e或false,Web应用程序,15,Bean的生命周期,Bean初始化,Bean使用,Bean销毁,BeanNameAware,setBeanName(),BeanFactoryAware,setBeanFactory(),BeanPostProcessor,postProcessBeforeInitialization(),postProcessAfterInitialization(),在Bean定义文件中定义init-method属性设置初始化方法,修正Bean相关属性,BeanFactory通过读取定义文件来初始化所有Bean,ApplicationContext使用时将Spring

6、-context.jar加载,DisposableBean,destroy(),在定义文件中设置属性destroy-method,16,示例,设计PersonBean,其属性pname(String)和page(int),在Spring的配置文件中设置的属性”init-method”,将Person的实例属性page初始为18;同时要求在初始化之前要修正pname的值都要大写。,为属性init-method提供方法,17,代码分析,注意:ApplicationContext会自动侦测是否在定义文件中定义了实现BeanPostProcessor接口的类,Spring容器会在每一个Bean被初始化

7、之前、之后分别执行方法,18,结果,19,Bean定义的继承,在Bean定义文件中,可以设置属性abstract=“true”,表示这是抽象的Bean定义,Spring不会实例化它;在要继承中设置属性parent=“抽象Bean”,问题:在定义文件中可以不用abstract属性直接继承某个bean定义吗?,20,Bean的依赖设置,方式:Type 2 IoC 与Type 3 IoC(利用构造方法依赖注入),21,运行结果,注意:在定义文件中,使用标签来表示将使用Constructor Injection,必须依照构造参数的顺序。或者指定索引位置,“index”属性用于指定对象将注入至构造方法中

8、哪一个位置的参数,参数索引位置从0开始。Spring会自动解析构造方法上的参数类型及所设置的依赖注入,用以决定使用哪个构造方法。,22,依赖值设置与参考,在定义文件中,如果设置某个属性为null,使用标签;如果设置字符串为空串:Spring中使用引用其他Bean,表示引用一个id或name,这个bean可以在同一个xml文件中,也可以不在当前xml文件中;不在同一文件中,使用import来引入其他配置文件;,表示引用当前xml文件中的id,使用内部Bean,不需要id,只能在此处使用。,23,示例,24,集合注入,对于数组、List、Set、Map等集合对象,在注入前必须填充入一些对象至集合中

9、,然后将集合对象注入到所需的Bean,也可以由IoC容器来完成集合对象的注入;对于数组或List类型的依赖注入,在定义文件中使用标签;对于Map类型,使用标签,但要用表示key。对于Set类型,使用标签;若要注入的是properties类型,使用标签,25,示例,26,代码分析,27,结果,28,标签,Spring2.0可以新增标签进行扩充,使用、取代简化集合的配置。在使用之前在配置文件中加入util的命名空间。示例:利用标签改写上述配置文件,29,代码分析,添加util命名空间配置,若不指定,由容器自行决定实现的容器对象,30,资源、消息、事件,Spring提供了对资源存取的接口:Appli

10、cationContext继承该接口,使用getResource()方法来取得资源解析文字消息 ApplicationContext继承接口 org.springframework.context.MessageSource接口,使用getMessage()获得文字消息,从而实现国际化消息的目的。,Resource res=context.getResource(“classpath:message.properties”);,31,示例,利用接口MessageSource的一个实现类ResourceBundleMessageSource来取得国际化消息,32,运行结果,33,事件监听与发布,

11、在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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号