spring_培训 (50页)

上传人:小** 文档编号:54884882 上传时间:2018-09-21 格式:PPT 页数:50 大小:847.52KB
返回 下载 相关 举报
spring_培训 (50页)_第1页
第1页 / 共50页
spring_培训 (50页)_第2页
第2页 / 共50页
spring_培训 (50页)_第3页
第3页 / 共50页
spring_培训 (50页)_第4页
第4页 / 共50页
spring_培训 (50页)_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《spring_培训 (50页)》由会员分享,可在线阅读,更多相关《spring_培训 (50页)(50页珍藏版)》请在金锄头文库上搜索。

1、Spring 培训,Agenda,到底什么是Spring Framework?,Open source (LGPL) 网址:http:/www.springframework.org,http:/www.springframework.org,一种Light-weight Container Light-weight是相对于J2EE Container而言,到底什么是Spring Framework?,一个易于整合各种构件、服务的应用程序框架(Application Framework),到底什么是Spring Framework?,Quartz,JSF,Webwork,JDO,Spring

2、framework的组成要素,Spring framework的组成要素,Dependency Injection,是一种Design Pattern 目的在于将对象之间的依赖性(Dependency)分离 强化了以接口为基础的软件设计,Loose coupling,Dependency Injection “In a Nutshell”,以下是一个经常见到的Design,Dependency Injection “In a Nutshell”,在上述的情况下,虽然有Interface based design的概念,但仍然存在着一个失落的环节 ServiceCaller.java: Dumb

3、Service aService = new DumbServiceImplementation();,Dependency Injection “In a Nutshell”,设计(Design)和实现(Implementation)有了落差!,Dependency Injection “In a Nutshell”,解决方法:,Dependency Injection “In a Nutshell” Assembler.java的程序,Dependency Injection!,Dependency Injection “In a Nutshell” Assembler所扮演的角色,Ass

4、embler负责: 管理对象生命周期 初始化 参数设定 销毁对象实例 处理对象之间的依赖性 Setter Constructor,Spring framework的Dependency Injection,Spring framework 扮演Assembler的角色 利用 XmlAppicationContext描述 对象之间的依赖性 对象的初始参数 对象实例的管理模式: Prototype Singleton,Dependency Injection!,Dependency lookup (Service Locator),在Spring中使用Dependency Lookup,在Spri

5、ng中使用Dependency Lookup,使用Dependency Lookup的影响,类/构件之间的依赖性減少到 接口(Interface) 名称(id/name) 然而却对Service Locator机制的API以及Container产生Dependency 其他使用类似机制的技术: EJB JNDI Lookup Corba CosNaming Avalon Framework,Dependency Injection: Setter based,在Spring中使用Setter based Dependency Injection,在Spring中使用Setter based D

6、ependency Injection,ServiceCaller.java,將对象之间的依赖性从主动的取得转成被动的使用: Dependency Lookup:打电话订Pizza Setter based:带饭盒 Setter based相对于Dependency Lookup ,是一种进步: 系统模块间的整合,变成一种依赖性的整合,使用Setter based Dependency Injection的影响,Dependency Injection: Constructor based,在Spring中使用Constructor based Dependency Injection,在Sp

7、ring中使用Constructor based Dependency Injection,ServiceCaller.java,使用Constructor based Dependency Injection的影响,Constructor based强制的将一个对象所需要的依赖对象在实例化的同时注入 Constructor based借此比较容易避免Setter based可能发生的问題: 当对象调用外部服务时,却因为没有设置对象和服务之间的依赖而产生NullPointerException,其他提供Dependency Injection的Container,PicoContainer 网

8、址:http:/www.picocontainer.org/,为什么选择Spring Framework,支持Dependency Lookup,Setter based,Constructor based Dependency Injection 支持以XML来设置构件之间的依赖性 修改后不需重新编译 弹性最大 “Spring framework是以使用者为中心而设计的” Feature Rich,应用场景一:整合测试,TestCase,TestTarget,MockObject,RealObject,S P R I N G,Step 1: 定义一份Spring的Application Co

9、ntext,Step 2: Write Unit Test!,ServiceCallerTestCase.java: ApplicationContext aContext = new ClassPathXmlApplicationContext( “context.xml” ); ServiceCaller aCaller = (ServiceCaller) aContext.getBean( “caller” ); .assertions,Step 3: 整合测试时,替换掉MockObject,应用场景二:数据存取以及事务管理,Business Object,DAO,DAO,DAO,Hib

10、ernate,S P R I N G,Hibernate简介,http:/www.hibernate.org/ Project lead: Gavin King 目前是JBoss Inc.的员工 负责实现未来JBoss J2EE Application Server的Persistence engine;该Engine将以Hibernate为基础 名言:Do one thing and do it well LGPL授权模式,business-friendly 每月下载量约15000人次 EJB3.0的Entity Bean将以Hibernate做为基础,Hibernate与Spring Fr

11、amework的整合,提供与Hibernate整合的相关Java Bean style Helper Class Hibernate Exception处理 提供Hibernate Session管理能力 在Application Context当中设定并管理Hibernate的SessionFactory以及所需要的JDBC Connection pool 通过AOP来提供宣告式事务管理能力,Hibernate与Spring Framework的整合Step 1:设定JDBC Data source,org.hsqldb.jdbcDriverjdbc:hsqldb:hsql:/localho

12、stsa,Hibernate与Spring Framework的整合Step 2:设定Session Factory, HourStatistic.hbmDayStatistic.hbmnet.sf.hibernate.dialect.HSQLDialecttruenet.sf.ehcache.hibernate.Provider,Hibernate与Spring Framework的整合Step 3:设定DAO,Hibernate与Spring Framework的整合Step 4:设定Business Object,Hibernate与Spring Framework的整合Step 5:设

13、定Transaction Manager,Hibernate与Spring Framework的整合Step 6:设定AOP method interceptor以及Proxy,PROPAGATION_REQUIREDPROPAGATION_MANDATORY,Hibernate与Spring Framework的整合:Class Diagram,Hibernate与Spring Framework的整合:AOP扮演什么角色?,Spring Framework问题,Application Context整合问题 模块一多,整合困难 强烈建议使用能和IDE整合在一起,功能又强大的XML Edit

14、or,Spring Framework问题,Application Context整合问题 模块一多,整合困难 强烈建议使用能和IDE整合在一起,功能又强大的XML Editor 寻找一种能将依赖性视觉化的方式 善用Autowiring,Spring Framework问题,Application Context整合问题 模块一多,整合困难 强烈建议使用能和IDE整合在一起,功能又强大的XML Editor 寻找一种能将依赖性视觉化的方式 善用Autowiring 使用Spring framework必須避免自行管理依赖性对象的生命周期,Spring Framework问题,A,B,C,总结,Spring是一个J2EE简化的里程碑: J2EE made easy 许多新观念和工具的整合平台 AOP Hibernate、JDO、iBatis、Quartz Dependency Injection EJB3.0的设计会和Spring的模式很接近 EJB3.0以POJO + Metadata来取代EJB interfaces + DD为中心的开发模式,谢谢!,

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

当前位置:首页 > 商业/管理/HR > 其它文档

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