收藏 分享(赏)

spring_培训.ppt

上传人:无敌 文档编号:1370735 上传时间:2018-07-05 格式:PPT 页数:50 大小:847.50KB
下载 相关 举报
spring_培训.ppt_第1页
第1页 / 共50页
spring_培训.ppt_第2页
第2页 / 共50页
spring_培训.ppt_第3页
第3页 / 共50页
spring_培训.ppt_第4页
第4页 / 共50页
spring_培训.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

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

2、amework的组成要素,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:DumbServic

3、e 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所扮演的角色,Assembler负责

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

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

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

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

8、pring Framework,支持Dependency Lookup,Setter based,Constructor based Dependency Injection支持以XML来设置构件之间的依赖性修改后不需重新编译弹性最大“Spring framework是以使用者为中心而设计的”Feature Rich,应用场景一:整合测试,TestCase,TestTarget,MockObject,RealObject,SPRING,Step 1: 定义一份Spring的Application Context,Step 2: Write Unit Test!,ServiceCallerTes

9、tCase.java:ApplicationContext aContext = new ClassPathXmlApplicationContext( “context.xml” );ServiceCaller aCaller = (ServiceCaller) aContext.getBean( “caller” );.assertions.,Step 3: 整合测试时,替换掉MockObject,应用场景二:数据存取以及事务管理,Business Object,DAO,DAO,DAO,Hibernate,SPRING,Hibernate简介,http:/www.hibernate.org

10、/Project lead: Gavin King目前是JBoss Inc.的员工负责实现未来JBoss J2EE Application Server的Persistence engine;该Engine将以Hibernate为基础名言:Do one thing and do it wellLGPL授权模式,business-friendly每月下载量约15000人次EJB3.0的Entity Bean将以Hibernate做为基础,Hibernate与Spring Framework的整合,提供与Hibernate整合的相关Java Bean style Helper ClassHiber

11、nate Exception处理提供Hibernate Session管理能力在Application Context当中设定并管理Hibernate的SessionFactory以及所需要的JDBC Connection pool通过AOP来提供宣告式事务管理能力,Hibernate与Spring Framework的整合Step 1:设定JDBC Data source,org.hsqldb.jdbcDriver jdbc:hsqldb:hsql:/localhost sa ,Hibernate与Spring Framework的整合Step 2:设定Session Factory,. H

12、ourStatistic.hbm DayStatistic.hbm net.sf.hibernate.dialect.HSQLDialect true net.sf.ehcache.hibernate.Provider ,Hibernate与Spring Framework的整合Step 3:设定DAO, ,Hibernate与Spring Framework的整合Step 4:设定Business Object, ,Hibernate与Spring Framework的整合Step 5:设定Transaction Manager,Hibernate与Spring Framework的整合St

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报