Spring transaction

题目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事务处理

阅读更多
文章标签: java spring 事务
个人分类: java spring
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭