Spring transaction

原创 2016年12月16日 10:14:16

题目1:

账户1的初始金额为500,更新金额为501,并在更新账户1的过程中发现异常。问有和没有@transaction配置,结果会有什么不同?

Spring transaction

假设:x=[有、没有]注解,y=账户1的金额
结果:
当x=[没]注解,y=501;
当x=[有]注解,y=500

题目2:

与题目1一样,不同的是有@transaction,这时更新账户1时发生异常。问内部处理异常(try..catch..)和抛出异常(throw..),结果会有什么不同?

这里写图片描述

假设:x=异常处理方式,y=账户1的金额
结果:
当x=内部处理异常,y=501;
当y=抛出异常,y=500

小结

1,@transaction属于java事务处理
2,当且仅当@transaction注解的方法内发生异常,且向外抛出时触发。

参考资料

spring官网指南:transaction manager
Spring Transaction属性之Propagation
java事务处理

那些年spring声明式事务@Transaction的坑

作为开发人员,我相信同学们都会遇到这样的一个业务场景:一个业务方法90%的逻辑都是在做查询,只有最后一部分才是对数据的更新。如果更新失败则业务回滚。常见的做法就是在该方法上加一个@Transactio...
  • y943623901
  • y943623901
  • 2016年03月10日 16:49
  • 7879

Spring Transaction配置简介

可以从以下多个维度配置Spring事务。propagation表示当前事务与父事务(同一个线程中之前申明事务)的关系。父子事务体现为,方法调用栈的调用先后顺序。 说得更直白点,就是一个方法Metho...
  • kimylrong
  • kimylrong
  • 2016年04月22日 17:16
  • 2514

Spring @Transaction配置示例及发生不回滚原因深度剖析

背景 最近在公司做的一个项目,用的是SpringMVC框架,数据库用的是MySql,刚开始并没有加入事务,其实主要原因是本人没有使用过SpringMVC的事务。 问题的产生和解决 使用事务,直接...
  • chndata
  • chndata
  • 2015年07月24日 16:13
  • 1744

Spring事务 REQUIRES_NEW、NESTED与NOT_SUPPORTED

手动创建一个异常,用来探究Spring事务处理机制。 transactionManager为DataSourceTransactionManager。 本次暂不讨论JTA ,由于公司项目历史原因...
  • chs_jdmdr
  • chs_jdmdr
  • 2015年06月08日 14:00
  • 4304

spring mvc @Transaction注解不生效的解决

spring的注解极大的方便了配置bean,将以前繁琐的工作简化,其中使用@Transaction注解进行事务管理更是方便,网上和各种书籍中讲解@Transaction注解使用方法的文章更是数不胜数,...
  • bjrxyz
  • bjrxyz
  • 2013年09月28日 12:32
  • 2923

Spring事务问题 - 大数据clob插入需要事务

org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLExcepti...
  • qingchun1987_303
  • qingchun1987_303
  • 2011年12月07日 10:50
  • 2449

Spring 事务传播机制 实例讲解

事务传播机制 对于SQL事务的概念以及ACID性质,可以参见我的另一篇博文 http://kingj.iteye.com/admin/blogs/1675011spring的管理的事务可...
  • glory1234work2115
  • glory1234work2115
  • 2016年06月07日 22:04
  • 543

Spring Transaction 分析事务属性(事务的基本概念、配置)

众所周知的ACID属性:  原子性(atomicity)、一致性(consistency)、隔离性(isolation)以及持久性(durability)。我们无法控制一致性、原子性以及持久性,但可...
  • partner4java
  • partner4java
  • 2011年11月26日 20:18
  • 3361

Spring Transcation注解原理解释&实践

每个事务都由拦截 org.springframework.transaction.interceptor.TransactionInterceptor 在看 org.springframewor...
  • yx511500623
  • yx511500623
  • 2016年11月18日 16:34
  • 680

spring 事务JDBCTransaction JTATransaction CMTTransaction

java事务实现世界可分为两种 一种是jdbc事务,也叫本地事务,令外一种是JTA事务,也叫全局事务。简要介绍下JTA API javax.transaction.Status JTA事务状态,使...
  • gxftry1st
  • gxftry1st
  • 2017年06月12日 14:18
  • 373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring transaction
举报原因:
原因补充:

(最多只允许输入30个字)