当前位置: 首页>后端>正文

学习Spring事务

首先我们先要了解什么是Spring 事务管理

? ? ? 在实际开发中,操作数据库时都会涉及到事务管理问题,为此Spring提供了专门用于事务处理的API。Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。

事务的特性(ACID)

事务具有4个基本特性:原子性、一致性、隔离性、持久性。也

就是我们常说的ACID原则。

1.原子性(Atomicity):一个事务已经是一个不可再分割的工作单位。事务中的全部操作要么都做;要么都不做,

2.一致性(Consistency):事务的执行使数据从一个状态转换为另一个状态,但是对于整个数据的完整性保持稳定。

3.隔离性(Isolation):事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立;

4.持久性(Durability):一个事务一旦提交,它对数据库中数据的改变会永久存储起来。其他操作不会对它产生影响.

Spring 事务传播行为

学习Spring事务,第1张

Spring事务的传播属性

学习Spring事务,第2张

事务的隔离级别

学习Spring事务,第3张

spring事务的配置方式

spring 在事务处理上支持编程式事务和声明式事务

1. 编程式事务管理

编程式事务管理是侵入性事务管理,使用TransactionTemplate或者直接使用PlatformTransactionManager,对于编程式事务管理,Spring推荐使用TransactionTemplate。

2. 声明式事务管理

声明式事务管理建立在AOP之上,其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,执行完目标方法之后根据执行的情况提交或者回滚。

编程式事务每次实现都要单独实现,但业务量大功能复杂时,使用编程式事务无疑是痛苦的,而声明式事务不同,声明式事务属于无侵入式,不会影响业务逻辑的实现,只需要在配置文件中做相关的事务规则声明或者通过注解的方式,便可以将事务规则应用到业务逻辑中。

显然声明式事务管理要优于编程式事务管理,这正是Spring倡导的非侵入式的编程方式。唯一不足的地方就是声明式事务管理的粒度是方法级别,而编程式事务管理是可以到代码块的,但是可以通过提取方法的方式完成声明式事务管理的配置。

Spring事务的实现

1.通过注解方式:

Spring配置类SpringConfiguration

学习Spring事务,第4张

配置类JdbcConfig

学习Spring事务,第5张

业务层

学习Spring事务,第6张

测试代码

学习Spring事务,第7张

运行结果

学习Spring事务,第8张

2.通过xml方式

(1)导入AOP相关坐标

学习Spring事务,第9张

(2)创建类

学习Spring事务,第10张

创建dao接口和实现类

在com.cqgcxy.dao包下创建目标接口AccountDao

学习Spring事务,第11张

创建目标类PhoneServiceImpl和接口

学习Spring事务,第12张
学习Spring事务,第13张

测试代码

学习Spring事务,第14张

资料链接:https://blog.csdn.net/donggua3694857/article/details/69858827

https://blog.csdn.net/weixin_43887870/article/details/120074761


https://www.xamrdz.com/backend/3gh1935228.html

相关文章: