Spring培训(共34张).pptx

上传人:醉**** 文档编号:8194257 上传时间:2022-03-15 格式:PPTX 页数:34 大小:274.91KB
返回 下载 相关 举报
Spring培训(共34张).pptx_第1页
第1页 / 共34页
Spring培训(共34张).pptx_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《Spring培训(共34张).pptx》由会员分享,可在线阅读,更多相关《Spring培训(共34张).pptx(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Spring 培训2011年11月p Spring框架总结构n Spring历史n Spring介绍p Spring框架核心技术n Spring七大模块简介n Spring术语简介n 控制反转的定义n 依赖注入的原理n 容器管理p Spring中获取数据库连接方式p Spring事务管理p JSF集成Springp Spring集成Ibatis本次培训内容Spring历史Spring出自于Rod Johnson的大作,源于他在2002年所著Expert One-on-One J2EE Design and Development一书的基础代码。2003年2月,他把所描述的框架在SourceF公

2、开了源码,后来这个框架就成为今天我们所学习的著名框架Spring。Spring简介spring整体架构spring整体架构oCore 封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。oDao提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java ob jects)都适

3、用。spring整体架构oORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。oSpring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-leve

4、l的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。spring整体架构oSpring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。oSpring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离

5、模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。Spring中的术语介绍p轻量级p非入侵式p容器pIOC/DIpAOPp持久层pWEB框架体系p与其它框架的无缝结合术语-轻量级轻量级是针对重量级(EJB)来说的,Spring的核心包不到1M大小,而使用Spring的核心包所需的资源也很小,所以可以在小型设备中使用。术语-入侵性所有的框架都是提供大量的功能供用户去使用,从而简化开发时间和成本,但由于大量的使用了框架的API,使应用程序和框架发生了大量的依赖性,无法从框架中独立出来,更加无法使程序组件在其他程序中使用,而Spring目标是一个非入侵式的服务框

6、架。术语-持久层的支持Spring提供了对持久层的整合,对JDBC的使用加以封装简化,提供事务功能,对ORM框架封装,并提供更简单的接口。术语-Spring中的IOCIOC:Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。什么意思呢?就好比一个皇帝和太监 有一天皇帝想宠幸某个美女,于是跟太监说,今夜我要宠幸美女 ,皇帝往往不会告诉太监,今晚几点会回宫,会回哪张龙床,他只会告诉太监他要哪位美女 其它一切都交由太监去安排,到了晚上皇帝回宫时,自然会有美女出现在皇帝的龙床上 ,这就是控制反转;而把

7、美女送到皇帝的寝宫里面去就是注射 ,太监就是框架里面的注射控制器类BeanFactory,负责找到美女并送到龙床上去 ;整个后宫可以看成是Spring框架,美女就是Spring控制下的JavaBean。 IOC原理发展过程p一个人(Java实例,调用者)需要一把斧子(Java实例,被调用者)。p原始社会里,几乎没有社会分工。需要斧子的人(调用者)只能自己去磨一把斧子(被调用者)。对应的情形为:Java程序里的调用者自己创建被调用者。p进入工业社会,工厂出现。斧子不再由普通人完成,而在工厂里被生产出来,此时需要斧子的人(调用者)找到工厂,购买斧子,无须关心斧子的制造过程。对应Java程序的简单工

8、厂的设计模式。p进入“按需分配”社会,需要斧子的人不需要找到工厂,坐在家里发出一个简单指令:需要斧子。斧子就自然出现在他面前。对应Spring的依赖注入。术语-Spring中的DIpDI:Dependency Injection 依赖注入pDI和IOC是同一个概念。具体含义是:当某个角色需要另一个角色的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入给调用者,因此也称为依赖注入。依赖注入的三种方式p接口注入 public class MySe

9、rvlet extends HttpServlet public void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpServletRequest和HttpServletResponse实例由Servlet Container在运行期动态注入。依赖注入的三种方式o设值注入 设值注入是指通过setter方法传入被调用者的实例。这种注入方式简单、直观,因而在Spring的依赖注入里大量使用 。o构造注入 构造注入,指通过构造函数来

10、完成依赖关系的设定,而不是通过setter方法来完成被调用者实例的注入依赖注入的三种方式o接口注入模式因为历史较为悠久,在很多容器中都已经得到应用。但由于其在灵活性、易用性上不如其他两种注入模式,因而在IOC的专题世界内并不被看好。o构造注入和设值注入模式各有千秋,理论上,以构造注入类型为主,辅之以设值注入类型机制作为补充,可以达到最好的依赖注入效果,不过对于基于Spring Framework开发的应用而言,设值注入使用更加广泛。 术语-Spring中的AOP pSpring最被人重视的另一个方面就是对AOP的支持,其实AOP只是Spring支持的一个子容器。pAOP Aspected Or

11、iented Programming 面身向方面编程。它可以解决OOP和过程化方法不能够很好解决的横切(crosscut)问题,如:事务、安全、日志等。pSpring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。建议优先使用JDK的动态代理,强制使用CGLIB代理需要将的proxy-target-class属性设为true。术语-容器-Bean的管理pBeanFactory,ApplicationContextpBeanFactory负责读取Bean的定义、管理对象的加载、生成、维护Bean和Bean之间的依赖关系。p而ApplicationContext提供了一些特色和更

12、高级的服务。如:读取Resource File更加方便 国际化的支持 支持文字消息解析术语-容器Bean的生命周期pBean的建立pBean的初始化pBean的使用(属性注入)pBean的销毁Spring中获取连接方式11:DBCP数据源DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta-commons/commons-pool.jar。下面是使用DBCP配置oracle数据源的配置片断:注意:DBCP数据源是tomca

13、t连接池默认的实现方式Spring中获取连接方式22:C3P0数据源C3P0是一个开放源代码的JDBC数据源实现项目,它在lib目录中与Hibernate一起发布,实现了JDBC3和JDBC2扩展规范说明的Connection 和Statement 池。C3P0类包位于/lib/c3p0/c3p0-0.9.0.4.jar。下面是使用C3P0配置一个Oracle数据源: 注:Hibernate中已经放弃了对DBCP的支持,取而代之的是C3P0 数据源Spring中获取连接方式33. Spring的数据源实现类(DriverManagerDataSource)Spring本身也提供了一个简单的数据

14、源实现类DriverManagerDataSource ,它位于org.springframework.jdbc.datasource包中。这个类实现了javax.sql.DataSource接口,但它并没有提供池化连接的机制,每次调用getConnection()获取新连接时,只是简单地创建一个新的连接。因此,这个数据源类比较适合在单元测试或简单的独立应用中使用,因为它不需要额外的依赖类。Spring中获取连接方式3Spring中获取连接方式4 4.获取JNDI数据源如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源。

15、应用服务器的数据源使用JNDI开放调用者使用,Spring为此专门提供引用JNDI资源的JndiObjectFactoryBean类。下面是一个简单的配置: 通过jndiName指定引用的JNDI数据源名称。注意:该方式是由注意:该方式是由应用服务器应用服务器来管理连接对象,所以需要启动来管理连接对象,所以需要启动应用服务器应用服务器。Spring事务管理o声明式事务n声明事务管理是多数使用者的首选n使用AOP配置声明式事务o o配置中最后一段是的定义切面,它确保由txAdevicebean定义的事务通知在应用中合适的点被执行n采用注解声明式事务Spring事务管理使用Transactiona

16、l注解可以被应用于接口定义和接口方法、类定义和类的public方法上Spring建议在具体的类(包括该类的方法)上使用注解Spring事务管理o编程式事务管理n 使用TransactionTemplaten 直接使用一个PlateformTransactionManager实现n Spring推荐使用TransactionTemplateJSF集成Spring oFaces-config增加配置 elementBean com.regaltec.baf.module.ui.control.ElementBean request business #baf_businessDelegate JS

17、F集成SpringoWEB.XML增加配置 contextConfigLocation classpath:com/regaltec/common/config/applicationContext.xml org.springframework.web.context.ContextLoaderListener org.springframework.web.util.IntrospectorCleanupListener Spring集成IBATISoapplicationContext.xml增加配置 classpath:com/regaltec/common/config/ibatis.xml classpath*:com/regaltec/*/*SqlMap.xml Spring集成IBATISpDAO实现类继承SqlMapClientDaoSupportpSpring bean配置文件注入sqlMapClient 演讲完毕,谢谢观看!

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

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com