- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring事务管理选编
学习 · 创造 · 超越 · 共享;Spring事务管理大纲;事务基本概念;c.局部事务与全局事务区别:操作的资源不同。;1、问题;;Spring没有直接管理事务,而是将管理事务的责任委托给某个特定平台的事务实现。;Spring的事务管理器;2014/10/30;2014/10/30;2014/10/30;2014/10/30;2014/10/30;事务的传播方式;传播行为;2014/10/30; 隔离级别几个概念
脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。
不可重复读:一个事务执行相同的查询两次或两次以上,但每次查询结果都不同。
幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。; 隔离级别;2014/10/30;2014/10/30; 只读
若对数据库只进行读操作,可设置事务只读的属性,使用某些优化措施。数据库会进行优化处理。
若使用hibernate作为持久化机制,声明一个只读事务会使hibernate的flush模式设置为FLUSH_NEVER。避免不必要的数据同步,将所有更新延迟到事务的结束。; 事务超时
若事务在长时间的运行,会不必要的占用数据库资源。设置超时后,会在指定的时间片回滚。将那些具有可能启动新事务的传播行为的方法的事务设置超时才有意义(PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW,PROPAGATION_NESTED)。;2014/10/30;Spring事务管理大纲;Spring编程式事务管理;;TransactionDefinition接口
1:事务隔离:当前事务和其它事务的隔离的程度。例如,这个事务能否看到其他事务未提交的写数据?
2:事务传播:通常在一个事务中执行的所有代码都会在这个事务中运行。但是,如果一个事务上下文已经存在,有几个选项可以指定一个事务性方法的执行行为:例如,简单地在现有的事务中继续运行(大多数情况);或者挂起现有事务,创建一个新的事务。Spring提供EJB CMT中常见的事务传播选项。
3:事务超时: 事务在超时前能运行多久(自动被底层的事务基础设施回滚)。
4:只读状态: 只读事务不修改任何数据。只读事务在某些情况下(例如当使用Hibernate时),是一种非常有用的优化。;直接使用PlatformTransactionManager;;使用TransactionTemplate管理事务
TransactionTempale采用和其他Spring模板,如JdbcTempalte和HibernateTemplate一样的方法。它使用回调方法,把应用程序从处理取得和释放资源中解脱出来。如同其他模板,TransactionTemplate是线程安全的。代码片段:
TransactionTemplate tt = new TransactionTemplate();
Object?result?=?tt.execute(new?TransactionCallback()...{ ?
public?Object?doTransaction(TransactionStatus?status)...{ ?
//do sth
return?null;
} ?
});?
使用TransactionCallback()可以返回一个值。如果使用TransactionCallbackWithoutResult则没有返回值。
TransactionCallbackWithoutResult —— 执行事务没有返回值,例如save、update、delete等等;
TransactionCallback —— 执行事务处理后有返回值,如find要返回结果集(List);
;;2014/10/30;2014/10/30;2014/10/30;2014/10/30;2014/10/30;2014/10/30;2014/10/30;Spring事务管理大纲;2014/10/30;41;42;43;44;45;46;;;;;事务advice
tx:advice id=txAdvice transaction-manager=txManager
!-- the transactional semantics... --
tx:attributes
!-- all methods starting with get are read-only --
tx:method name=get* read-only=false rollback-for=NoProductInStockEx
文档评论(0)