博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring事物
阅读量:4650 次
发布时间:2019-06-09

本文共 736 字,大约阅读时间需要 2 分钟。

事物的基本概念

事物的四个特性

原子性:要么都发生要么都不发生。

一致性:状态一直。ab转账。a转出100b也必须也+100

隔离性:事物和事物之间应该互相隔离 互不影响

持久性:事物发生的改变 要存储于数据库

数据库的事物级别

mysql默认的是 可重复读

数据库常见的几种现象

  • 1、脏读  b提交了内容。 a读到了b提交的内容。 b回滚了。a就是脏读
  • 2、不可重复读 a每次读的内容都不一致
  • 3、幻读 a批量修改。这时候b插入一条 a好像没有修改掉。

mysql隔离级别

  读未提交

  读已经提交   避免脏读

  可重复读 避免不可重复读(默认)

  串行

spring事物碰撞机制

spring的配置

  advice中可以配置spring事物的隔离级别 织入哪些方法 读写等等  利用aop对数据库实现回滚

spring事物方法传播 @trasaction 可以修饰类 接口  方法  优先方法 接着是类

propagation

  主要 propogation_required 方法。如果方法运行时,已经处在一个事务中,那么加入到这个事务,否则自己新建一个新的事务。

NOT_SUPPORTED  就是不使用事物

REQUIRESNEW 什么情况都使用新事物

事物实现的。 源码大致意思是先找那些有@trasaction注解的方法、类 然后把这些个方法生成代理类,当这些个方法执行后,实际执行这些代理类,代理再调动我们的方法。当方法出现问题。就捕获那些异常。进行回滚处理。 好处就是分离了事物代码和核心业务代码。我们不用关心事物管理。更加专心关注核心业务代码。

 

转载于:https://www.cnblogs.com/tecnologycc/p/10072451.html

你可能感兴趣的文章