Spring中的事务管理技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring中的事务管理技术

Spring中的事务管理技术 1、J2EE平台中的事务管理的类型 (1)全局和局部事务管理 J2EE的事务管理分作global的事务管理与local的事务管理。 (2)global的事务管理由应用服务器容器来管理 global的事务管理由应用服务器容器来管理,它依赖于JTA,并有能力处理多个事务资源,就参考手冊所言的,JTA不易使用(因为它是一个直接用起来很笨重的API,一般只在多数据库访问时的分布式事务管理中才被应用)。 通常在J2EE的应用系统中,一般都借助于EJB CMT(基于容器的事务管理)形式来实现(因为许多J2EE开发者感到EJB CMT是对于事务管理唯一合理的选择)。 (3)local的事务管理   local的事务管理中,应用服务器容器不介入事务管理,local的事务管理通常依赖于特定資源,像是JDBC、Hibernate等中的事务控制的方法(如rollback()、commit()等方法)。local的事务管理对于組件本身有比较强的侵入性,我们必須自己管理事务的边界----也就是我们必須明确地在程序中编写rollback()、commit()等方法来处理事务,由於直接依赖于特定資源,在組件移植时,事务管理部份就有可能不相兼容,例如转换至应用服务器容器的事務管理时。 2、Spring中的事务技术的特点:提供一个一致的编程模型 Spring本身并没有直接提供事务管理方面的技术实现(包括local和global的事务管理),其local类型的事务管理实现由JDBC来完成,而分布式事务(global的事务)需要底层的JTA来实现。 但是Spring提供了事务的抽象,即底层真正事务实现可以切换而不影响应用程序代码。这样应用程序可以依赖于底层的应用服务器容器,也可以轻易地脱离开应用服务器容器的环境----从而增加了系统的可移植性。 DataSourceTransactionManager JtaTransactionManager HibernateTransactionManager 因此,当我们将应用系统从一种事务管理方式(如直接使用JDBC或者Hibernate的事务以避免JTA带来的额外负担)转换为多数据库访问时的分布式事务管理时,我们只需要简单地重新进行配置。 3、Spring中的事务管理的具体实现-----有两种实现方式 (1)代码控制的事务管理(programmatic transaction management)---程序实现事务管理 通过类似于JdbcTemplate的回调模板编程管理事务,比起直接使用JTA要容易多了 (2)声明控制的事务管理(declarative transaction management)---容器实现事务管理 类似于EJB CMT的声明式事务管理,但是不需要EJB容器同时可以应用到任何POJO目标对象-----因此,有了Spring之后,声明性事务不再是EJB独有,我们不必为了获得声明性事务的功能而去忍受EJB技术所带来的种种不便----因为,它是一个轻量级的事务架构。 4、代码控制的事务管理的一般实现方式 (1)总体上可以分为两大类的实现方式 一类是通过直接使用实现PlatformTransactionManager接口的类。 另一类是通过使用TransactionTemplate模板类,模板类的使用可以简化事务控制代码。 (2)优缺点 优点:保持与JDBC的事务处理的编程相兼容,并且比较灵活 这样,可以继续保持与传统的事务处理的编程一样,例如JDBC的原来的代码可以照样编写,而不必作太大的改变,而且Spring提供了一些辅助类与Template类,可以简化传统的数据库操作与事务处理,并可以运用其异常层次的优点。 其缺点代码量大,存在重复的代码比较多。 5、声明控制的事务管理的一般实现方式 (1)Spring对于声明式事务划分的支持实际上是利用了它的AOP机制 相对于编程式事务划分,这种基于AOP的方式比较灵活,而且对代码的侵入性几乎为零。因此,如果没有特殊需要推荐使用这种事务划分方式。 (2)实现的机制 基于AOP的常用事务划分方式可以使用ProxyFactoryBean加TransactionInterceptor方式,或者使用TransactionPorxyFactoryBean的方式。前一种方式相对比较灵活,而后一种则对使用相对比较简单。 (3)Spring声明式事务管理和EJB CMT的相似之处 Spring声明式事务管理和EJB CMT它们两者的基本实现方法在某些方面是相似的-----比如,都可以指定事务管理到单独的方法;如果需要可以在事务上下文调用setRollbackOnly()方法。 (4)Spring声明式事务管理和EJB CMT的不同之处 不象EJB

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档