Spring的核心容器.ppt_第1页
Spring的核心容器.ppt_第2页
Spring的核心容器.ppt_第3页
Spring的核心容器.ppt_第4页
Spring的核心容器.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Spring的核心容器,在Spring中,两个最基本最重要的包是 org.springframework.beans org.springframework.context 这两个包中的代码为Spring的反向控制 特性(也叫作依赖注射)提供了基础。 BeanFactory提供了一种先进的配置机制来管理任何种类bean(对象),这种配置机制考虑到任何一种可能的存储方式。 ApplicationContext建立在BeanFactory之上,并增加了其他的功能,比如更容易同Spring AOP特性整合, 消息资源处理(用于国际化),事件传递,以声明的方式创建ApplicationContext,

2、 可选的父上下文和与应用层相关的上下文(比如WebApplicationContext),以及其他方面的增强。,singleton 如果一个bean是singleton形态的,那么就只有一个共享的实例存在, 所有和这个bean定义的id符合的bean请求都会返回这个唯一的、特定的实例。 default is singleton,Ref ,对null的处理, null ,Depends-on, bean id=“date”.,Bean的生命周期,Bean的定义 Bean的初始化 Bean的调用 Bean的销毁,The definition of bean HelloWorld ,Bean的初始化

3、,1、在配置文档中通过指定init-method 属性来完成 在Bean的类中实现一个初始化Bean属性的方法,如init(),如: public class HelloWorld public String msg=null; public Date date=null; public void init() msg=HelloWorld; date=new Date(); 然后,在配置文件中设置init-mothod属性: ,Bean的初始化,实现 org.springframwork.beans.factory.InitializingBean接口 Bean实现InitializingB

4、ean接口,并且增加 afterPropertiesSet() 方法: public class HelloWorld implement InitializingBean public String msg=null; public Date date=null; public void afterPropertiesSet() msg=向全世界问好!; date=new Date(); 那么,当这个Bean的所有属性被Spring的BeanFactory设置完后,会自动调用afterPropertiesSet()方法对Bean进行初始化,于是,配置文件就不用指定 init-method属性

5、了。,Bean的调用,1、使用BeanWrapper HelloWorld hw=new HelloWorld(); BeanWrapper bw=new BeanWrapperImpl(hw); bw.setPropertyvalue(msg,HelloWorld); system.out.println(bw.getPropertyCalue(msg); 2、使用BeanFactory InputStream is=new FileInputStream(config.xml); XmlBeanFactory factory=new XmlBeanFactory(is); HelloWor

6、ld hw=(HelloWorld) factory.getBean(HelloWorld); system.out.println(hw.getMsg(); 3、使用ApplicationConttext ApplicationContext actx=new FleSystemXmlApplicationContext(config.xml); HelloWorld hw=(HelloWorld) actx.getBean(HelloWorld); System.out.println(hw.getMsg();,Bean的销毁,1、使用配置文件中的 destory-method 属性 与初

7、始化属性 init-methods类似,在Bean的类中实现一个撤销Bean的方法,然后在配置文件中通过 destory-method指定,那么当bean销毁时,Spring将自动调用指定的销毁方法。Public void cleanup(); 2、实现 org.springframwork.bean.factory.DisposebleBean接口 如果实现了DisposebleBean接口,那么Spring将自动调用bean中的Destory方法进行销毁,所以,Bean中必须提供Destory方法。 Public void destroy();,bean的自动装配,byName模式 byT

8、ype模式 constructor模式 autodetect模式 No模式,byName模式,为此Hello bean设置date属性的通用方式是在配置文件中指定 spring可以通过bean的属性autowire指定bean的自动装配类型,从而减少制定属性的需要 Hello bean中包含一个变量date(Data类型),autowire=byName,则spring就会查找一个叫data的bean来设置date属性,byType模式,byType模式如果配置文件中正好有一个bean,其类型与date的属性相匹配,则就自动装置。多于一个date类型bean是,就抛出异常,constructo

9、r模式,Hello bean 中增加一个构造函数,其中有个参数date,则spring就会根据参数查找合适类型的bean定义,然后用它来设置构造函数的参数值,autodetect模式,通过对bean检查类的内部来选择constructor或者byType模式,找到constructor就用constructor,否则用byType,no模式,即常用的显示制定模式。推荐此种方式,bean的依赖关系明显,Ref(local,bean,parant),1 、用 local 属性指定目标 bean 可以利用 xml 解析器的能力在同一个文件中验证 xml id 引用 . 如果在同一个文件中没有匹 配的

10、元素 ,xml 解析器就会产生一个 error, 所以如果目标 bean 在同一个 xml 文件中 , 那么用 local 形式是最好的选择 . 2 、可以这么说, 提供了如下几方面的属性 :1)bean: 在当前 Spring XML 配置文件中,或者在同一 BeanFactory(ApplicationContext) 中的其他 JavaBean 中 .2)local: 在当前 Spring XML 配置文件中 . 其依赖的 JavaBean 必须存在于当前 Spring XML 培植文件中 . 如果借助 于 Spring IDE, 则在编译期可以对其依赖的 JavaBean 进行验证。基于 loca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论