版权声明:本文为博主原创文章,经博主允许,可自由共享,尽量不要用于商业用途。 https://blog.csdn.net/matrixbbs/article/details/88946499
1 事务处理就是元子化
要么都做,要么都不做,单元化处理
2 四大特性ACID
- 原子性Atomicity
- 一致性Consistency
- 隔离性Isolation
- 持久性Durability
3 Spring对事务的支持
编程式事务管理(编码式)
即:将事务管理代码嵌入业务方法中来控制事务的提交和回滚
这样,每个业务中都应该有额外的事务处理代码
声明式事务管理
即:以声明的方式来实现事务管理。【本质上就是将上面的代码从业务方法中分离出来,做成配置形式】
大多数情况下,声明式比编码式更方便【特别是对于初学者】
要强调的是:Spring是通过Spring AOP框架支持声明式事务管理的
4 相关的数据库访问技术
**
- JDBC
- JPA
- Hibernate
- Mybatis
**
5 声明式事务管理
Spring配置文件关于事务配置三个总成
1 DataSource
2 TransactionManager
3 代理机制
6 Spring一般有5种事务配置方式,最常见的就是注解方式
@EnableTransactionManagement开启声明式事务支持
@Transactional用于注解相应的类的方法
7 Spring注解事务行为
当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。
有7种传播行为
- Propagation_Required
- Propagation_Supports
- Propagation_mandatory
- propagation_requires_new
- propagation_not supported
- propagation_never
- propagation_nested
8 隔离级别
- 读脏Dirty Read
- 不可重复读Nonrepeatable Read
- 幻读Phantom Read
8.1Spring提供了5种事务的隔离级别
- Isolation_default
- isolation_read_uncommited
- isolation_read_commited
- isolation_repeatable_read
- isolation_serializable
9在spring中使用事务的方式
开启事务很简单,只需要一个注解@Transactional就可以了。
Springboot中已经默认对JPA,JDBC,Mybatis开启了事务
引入它们的依赖时,事务就默认开启了。
**
类级别事务 注解加在类上,意味着该类所有方法都启用事务
方法级别事务 注解加在方法上,方法上优于类上
**