- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《《J2EE_Spring第4讲_深入理解容器中的Bean》.ppt
Java Web 开发教程 Spring第4讲:深入理解容器中的Bean IBM Learning Development 目标 深入理解容器中的Bean 容器中Bean的生命周期 深入理解依赖关系配置 基于XmlSchema的简化配置方式 Spring的表达式语音-SpEL 4.1 深入理解容器中的Bean spring的大部分工作都集中在bean的管理上,包括Bean的生命周期,和Bean继承等特殊功能。 1.使用抽象Bean 抽象Bean:就是abstract属性是true的Bean; Spring不会创建Bean的实例,抽象bean的价值在于继承。 抽象Bean: bean id=chineseTmp class=com.bean.Chinese abstract=true property name=axe ref=Axe/ property name=pname value=夸父/ /bean 4.1 深入理解容器中的Bean 2.使用子Bean 在应用程序配置中,我们可以发现大量的Bean配置信息完全相同,那么我们如何来简化配置呢——Bean的继承。 我们可以先为这些Bean配置一个模板——抽象Bean。 子Bean可以从抽象Bean继承: 实现类 构造参数 属性值 4.1 深入理解容器中的Bean 2.使用子Bean Bean配置: beans …… bean id=chineseTmp class=com.bean.Chinese abstract=true property name=axe ref=Axe/ property name=pname value=夸父/ /bean bean id=ch1 parent=chineseTmp/ bean id=Axe class=com.bean.StoneAxe lazy-init=true/ /beans 调用: ApplicationContext ctx = new ClassPathXmlApplicationContext(bean.xml); Person psn = (Person)ctx.getBean(ch1); 4.1 深入理解容器中的Bean 2.使用子Bean 子Bean覆盖父Bean的配置: bean id=chineseTmp class=com.bean.Chinese abstract=true property name=axe ref=Axe/ property name=pname value=夸父/ /bean bean id=ch1 parent=chineseTmp property name=pname value=大禹/ /bean 4.1 深入理解容器中的Bean 3.Bean继承和Java继承的区别 Spring中Bean的继承不同于java类的继承。Bean继承是实例间参数的延续,类继承是由一般到具体的细化。 区别: spring中,父Bean和子Bean可以是不同类型;Java中子类可以看做是特殊的父类; Bean继承表现的是配置参数的延续,java继承表现的还有方法的继承; Spring中,子Bean不可以作为父Bean使用。 4.1 深入理解容器中的Bean 4.容器中的工厂Bean 此处的工厂Bean,与前面实例工厂或静态工厂方法创建Bean的工厂有所区别:前面那些工厂是标准的工厂模式,Spring只是负责调用工厂方法来创建Bean实例:此处的工厂Bean是Spring的一个特殊Bean,这种工厂Bean必须实现FactoryBean接口。 FactoryBean需要实现的方法: T getObject()——获得bean实例 Class?getObjectType()——获得Bean类型 boolean isSingleton()——判断是否单例模式 4.1 深入理解容器中的Bean 4.容器中的工厂Bean 工厂Bean public class MyBeanFactory implements FactoryBeanChinese { private Chinese psn; private String pname; private Axe axe; public Chinese getObject() throws Exception { if(psn==null){ psn = new Chinese(); psn.setAxe(this.axe); psn.setPname(this.pname); } return psn; } public Class
文档评论(0)