SpringBoot中如何实现事务管理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5622个文字,预计阅读时间需要23分钟。
Spring事务概述,本地事务(区别于分布式事务)也称为数据库事务,MySQL的InnoDB存储引擎已支持事务。Spring中的事务是基于底层数据库事务的进一步封装,可应用于不同项目。
1、Spring 事务概述本地事务(区别于分布式事务)也叫数据库事务,MySQL的InnoDB存储引擎就已经支持了事务,Spring中的事务是在底层数据库事务的基础上进一步封装,可以在不同的项目、不同的操作中对事务的传播行为和隔离级别做细粒度的控制。
1.1 Spring事务管理的两种方式Spring支持两种事务管理方式:编程式事务和声明式事务。
(1)编程式事务
对于编程式事务而言,Spring推荐使用TransactionTemplate,在需要开启事务的代码处,通过类似数据库开启事务的BEGIN、COMMIT这种需要进行编码开启事务和提交事务或者回滚的,即需要在代码中显式地进行编码从而实现事务的效果。
实际开发中我们编程式事务用的很少,遇到需要开启事务的地方我们更倾向于选择声明式事务(@Transcation注解)的方式,下面会提到。
(2)声明式事务
Spring的声明式事务是基于AOP,本质是对需要开启事务的地方前后通过aop织入的方式进行拦截,即在执行方法前创建或者加入一个事务,执行完方法后根据执行情况提交或者回滚事务。在实际开发过程中,声明式事务多选择通过注解 @Transcation修饰要开启事务的方法。
相比编程式事务,声明式事务不需要对业务代码进行事务相关编码这种侵入式的开发,仅需要使用注解即可,使业务代码不受污染。
本文共计5622个文字,预计阅读时间需要23分钟。
Spring事务概述,本地事务(区别于分布式事务)也称为数据库事务,MySQL的InnoDB存储引擎已支持事务。Spring中的事务是基于底层数据库事务的进一步封装,可应用于不同项目。
1、Spring 事务概述本地事务(区别于分布式事务)也叫数据库事务,MySQL的InnoDB存储引擎就已经支持了事务,Spring中的事务是在底层数据库事务的基础上进一步封装,可以在不同的项目、不同的操作中对事务的传播行为和隔离级别做细粒度的控制。
1.1 Spring事务管理的两种方式Spring支持两种事务管理方式:编程式事务和声明式事务。
(1)编程式事务
对于编程式事务而言,Spring推荐使用TransactionTemplate,在需要开启事务的代码处,通过类似数据库开启事务的BEGIN、COMMIT这种需要进行编码开启事务和提交事务或者回滚的,即需要在代码中显式地进行编码从而实现事务的效果。
实际开发中我们编程式事务用的很少,遇到需要开启事务的地方我们更倾向于选择声明式事务(@Transcation注解)的方式,下面会提到。
(2)声明式事务
Spring的声明式事务是基于AOP,本质是对需要开启事务的地方前后通过aop织入的方式进行拦截,即在执行方法前创建或者加入一个事务,执行完方法后根据执行情况提交或者回滚事务。在实际开发过程中,声明式事务多选择通过注解 @Transcation修饰要开启事务的方法。
相比编程式事务,声明式事务不需要对业务代码进行事务相关编码这种侵入式的开发,仅需要使用注解即可,使业务代码不受污染。

