java spring 声明式事务

1. 为什么需要事务? 

经典转账案例: 张三转账200给李四, 张三扣款200, 李四收入200, 所以张三,李四的账户变动必须保证要么都成功, 要么都失败。这个可以通过事务机制来保证。

 

2. spring 声明式事务

@Transactional (isolation = isolation.REPEATABLE_READ)

注解参数是事务的隔离级别, 和mysql一样的。 mysql默认的隔离级别是可重复读, 这里也是写的可重复读,其实如果不设置,使用的就是数据库默认的隔离级别。 

@Transactional 

可以加到方法上,也可以加到类上, 如果加到类上,则类的所有方法都有事务性。建议加到方法上, 也就是处理业务逻辑的方法上。

 

3. 事务传播机制

java spring 声明式事务

主要前3种, 后面的了解即可, 目前项目中只用到过第一种。