首 页   论文发表 期刊大全 论文下载 常见问题 发表流程 免责声明 合作加盟 关于我们 诚信通道 联系我们   设为首页 加入收藏
  摘要:文章介绍事务的管理机制及Spring中事务的五种实现方式,对五种实现方式进行分析比较,建议使用基于@Transactional 注解的事务定义方式。  关键词:Spring;事务  中图分类号:TP311.1 文献标识码:A 文章编号:1673-1131(2015)10-0120-02.  0 引言..
教育期刊 | 经济期刊 | 科技期刊 | 文学期刊 | 医学期刊 | 学报期刊 | 建筑期刊 | 社科期刊 | 计算机期刊 | 图书管期刊 | 农业期刊 | CSSCI期刊 | 核心期刊 | 其他期刊
教育论文 | 经济论文 | 医药论文 | 文学论文 | 艺术论文 | 英语论文 | 法学论文 | 哲学论文 | 计算机论文理学论文  | 工学论文 |  管理论文 | 政治论文 | 社会论文
资源搜索: 搜索 高级搜索
2000论文网-诚信快速的论文发表网站! 论文发表投稿信箱:qwqk2000@126.com 论文发表在线咨询QQ: 85597153 论文发表咨询电话:17351597825  

TOP

基于 Spring 的事务处理机制的应用与研究
2018-07-23 17:08:45 来源: 作者:许姗姗 【 】 浏览:0次 评论:0
  摘要:文章介绍事务的管理机制及Spring中事务的五种实现方式,对五种实现方式进行分析比较,建议使用基于@Transactional 注解的事务定义方式。
  关键词:Spring;事务
  中图分类号:TP311.1 文献标识码:A 文章编号:1673-1131(2015)10-0120-02.
  0 引言
  事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作。这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。事务是一个不可分割的工作逻辑单元[1]。
  比如,小张账户上有一千元,小李账户上只有一元,现要从小张的帐户转帐一千元到小李的帐户。转帐后余额总和保持不变,为 1001 元。但是完成操作后,小张的帐户没有减少,但小李的帐户却多了一千元,转帐后余额总和变成了 2001 元,为何会多出一千元呢?因为小张帐户原有一千元,减少一千元后为 0 元,违反了银行规定余额不能少于一元的约束,所以终止执行。但后面的语句并没有中断执行,小李的帐户增加了一千元,变为 1001 元。
  使用事务就可以帮我们解决以上的问题,因为事务是一个整体。如果其中一步失败了,那整个操作都取消;只有每步都成功了,则整个操作才完成。
  1 Spring 事务技术介绍
  1.1 Spring 框架技术 Spring是基于控制反转IOC(InversionofControl)和面向方面编程 AOP(AspectOrientedProgramming)的轻量级容器框 架[2]。
  Spring 由七个定义良好的模块组成,有 Spring Aop、SpringORM,Spring DAO 等等。每个模块既可单独存在,也可以和其它的模块结合起来实现。组件的关系通过配置 Spring 框架的 applicationContext.xml 联系起来 [3]。Spring 框架带来的好处:面向接口编程,Spring 将使用接口的复杂度降低到零;Spring 框架让代码的测试更简单了等等。
  1.2 Spring 事务技术
  对于方法级别的事务管理,如果方法在运行过程中出现异常则事务会回滚,如果未出现异常则事务会成功提交。所以,事务管理的主要任务是事务的开始、回滚和提交。通常查询是不需要进行事务管理的,而增删改就必须要用到事务管理了。
  Spring 提供声明式事务管理(基于 XML 方式配置事务和基于注解方式管理事务)。声明式事务的优点是不用通过编程的方式就能够管理事务,这样就在业务的代码中就不用掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明或在业务方法上进行@Transactional注解,便可以将事务规则应用到业务逻辑中。
  基于注解方式管理事务可以对要开启的事务做具体的事务属性配置。所有的方法除非显示声明不开启事务,否则会默认开启事务。基于注解方式管理的事务对于事务传播行为、事务的回滚等事务管理属性的设置也能更为便捷地实现[4]。
  2 Spring 的事务配置方式
  Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分[5]。
  2.1 每个 Bean 都有一个代理
  Bean 代理如图 1 所示:
  图 1 Bean 代理
  2.2 每个 Bean 都有一个代理
  (1)定义 LocalSessionFactoryBean 类,id 命名为 id="sessionFactory"。
  (2)定义事务管理器,id 命名为 id="transactionManager"。
  (3)定义 TransactionProxyFactoryBean 类,id 命名为:id="tBase",方法一的定义是一样的;(4)配置事务管理器,和方法一的区别是只需配置属性transactionManager即可;配置事务属性,和方法一的定义是一样的。
  (5)配置 DAO,这是和方法有所区别的:
  <bean id="userTarget" class="com.dao.UserDaoImpl">
  <property name="sessionFactory" ref="sessionFactory" />
  </bean>
  <bean id="userDao" parent="tBase" >
  <property name="target" ref="userTarget" />
  </bean>
  2.3 使用拦截器
  使用拦截器如图 2 所示:
  图 2 使用拦截器
  2.4 使用 tx 标签配置的拦截器
  使用 tx 标签配置的拦截器如图 3 所示:
  图 3 使用 tx 标签配置的拦截器
  2.5 全注解
  同样要定义事务管理器。Spring 还提供了@Transactional注解的事务配置,该方式写程序方便,配置文件少,便于维护与管理。如果一个类前加上@Transactional,则表示这类受 spring的事务管理。该类底下的所有业务方法再进行前都要开启事务,结束后都要关闭事务。如果只修饰某个方法则仅对该方法起作用[6]。例如:
  @Transactional
  public class ADaoImpl implements ADao{
  public void delete(){}
  } 将
  @Transactional 标记在类前,则该类中修饰为 public 的方法都将产生事物管理。
  3 结语
  Spring 提供了多样化的事务编程支持,包括编程式事务和声明式事务。声明式事务最大的优点是:不用通过编程的方式就能够管理事务,这样在业务的代码中就不用掺杂事务管理的代码。任何事务处理方式都需要有事务管理器的支持。Spring 的编程式事务比较适合对局部操作进行事务处理。如果应用系统中有大量的事务需要处理,则应该使用声明式事务处理。声明式事务处理实现了事务处理与业务逻辑的分离,声明式事务处理依赖 Spring AOP 的功能。上面所介绍的五种方式中的第一种或第二种实现的事务处理,需要为涉及事务处理的每个 Bean 设置一个代理,配置量大,特别是第一种方式配置量更大,用事务拦截器方式执行效率不够理想。在 Spring2.X 时,一般都采用方式三,主要带来的好处就是配置文件的量变小了。在 Spring2.5 时,可以采用方式五了,方式五基于@Transactional 注解的事务定义方法具有配置简单、编程和执行效率高的特点,并且基本实现了 0 配置,是最理想的方式。
  参考文献:
  [1] 王雨竹,张玉花,张星.SQL Server 2008 数据库管理与开发教程(第 2 版)[M].人民邮电出版社,2012.
  [2] 陈平. 基于 Spring 的轻量级 Web 框架的研究与设计 [D]江苏:江苏大学,2005.
  [3] 龚尚福.龚琴.冯键.基于 SSH 框架的 EPON 性能管理系统的设计与实现[J].计算机应用,2013(2).
  [4] 金导航.基于 Spring 的事务管理研究用[J].电脑知识与技术,2007(11).
  [5] Spring 事务配置的五种方式.http://www.blogjava.net/robbie/archive/2009/04/05/264003.html, 2009.
  [6] 丁振凡.Spring 3.x 的事务处理机制的研究比较[J].微型机与应用,2012(10).
Tags:基于 Spring 事务 处理 机制 应用 研究 责任编辑:admin
中国论文网-论文发表发表论文(www.lw2000.com),是一个专门从事期刊推广论文发表论文创作指导的机构。本站提供整体论文发表解决方案:省级论文/国家级论文/核心论文/CN论文多种期刊供你选择。
发表论文投稿信箱:qwqk2000@126.com
发表论文在线咨询:85597153
发表论文咨询电话:17351597825

】【打印繁体】 【收藏】 【关闭】 【返回顶部
上一篇没有了 下一篇桌面虚拟化技术在高校建设中的应..

联系我们 论文发表 论文投稿

论文发表在线咨询:站点合作85597153
论文发表咨询电话:17351597825
论文发表投稿信箱:qwqk2000@126.com

相关栏目

最新文章

图片主题

热门文章

推荐文章

相关文章

论文发表 | 发表论文 | 期刊导航 | 论文下载 | 常见问题 | 发表流程 | 免责声明 | 合作加盟 | 关于我们 | 诚信通道 | 联系我们  
论文发表在线咨询:85597153 咨询电话:13218666889投稿信箱:qwqk2000@126.com
Copyright © 2008-2012http://www.lw2000.com all rights reserved 苏ICP备11037565号
论文发表、发表论文 论文发表、发表论文
电话17351597825
2000论文网 版权所有.