springboot+mybatis事务管理

  • Post author:
  • Post category:其他


spring,mybatis事务管理配置与@Transactional注解使用



概述

事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。

Spring Framework对事务管理提供了一致的抽象,其

特点

如下:

为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects)支持声明式事管理,特别是基于注解的声明式事务管理,简单易用提供比其他事务API如JTA更单的编程式事务管理API与spring数据访问抽象的完美集成



事务管理方式

spring支持编程式事务管理和声明式事务管理两种方式。

编程式事务管理使用

TransactionTemplate

或者直接使用底层的

PlatformTransactionManager

。对于编程式事务管理,spring推荐使用

TransactionTemplate

声明式事务管理建立在

AOP

之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过基于

@Transactional

注解的方式),便可以将事务规则应用到业务逻辑中。

显然声明式事务管理要优于编程式事务管理,这正是spring倡导的非侵入式的开发方式。声明式事务管理使业务代码不受污染,一个普通的

POJO

对象,只要加上注解就可以获得完全的事务支持。和编程式事务相比,声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法等等。

声明式事务管理也有两种常用的方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于

@Transactional

注解。显然基于注解的方式更简单易用,更清爽。



spring事务特性

spring所有的事务管理策略类都继承自

org.springframework.



版权声明:本文为qq_40663357原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。