现在的位置: 首页 > web前端 > 正文

transactionmanager是什么

2020年07月16日 web前端 ⁄ 共 1272字 ⁄ 字号 评论关闭

  最近有个朋友去面试JAVA,问了我spring事务的事情,虽然之前有学过,但是没有融会贯通,回答得很浅。这几天重新学习研究了下,结合《Spring实战》和网上关于spring事务的博客文章,总结一下transactionmanager。


  transactionmanager初识


  事务是逻辑上的一组操作,要么全部成功,要么全部失败。


  事务具有ACID特性,参考百度百科,具体如下:


  原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。


  一致性(Consistency):事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。


  隔离性(Isolation):隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。


  持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。


  transactionmanager核心接口API


  image


  如上图,Spring事务管理高层抽象主要有3个:


  PlatformTransactionManager:事务管理器(用来管理事务,包含事务的提交,回滚)


  TransactionDefinition:事务定义信息(隔离,传播,超时,只读)


  TransactionStatus:事务具体运行状态


  PlatformTransactionManager核心事务管理器


  是Spring的事务管理器核心接口。


  Spring本身并不支持事务实现,只是负责包装底层事务,应用底层支持什么样的事务策略,Spring就支持什么样的事务策略。


  里面提供了常用的操作事务的方法:


  TransactionStatusgetTransaction(TransactionDefinitiondefinition):获取事务状态信息


  voidcommit(TransactionStatusstatus):提交事务


  voidrollback(TransactionStatusstatus):回滚事务


  PublicinterfacePlatformTransactionManager()...{


  //由TransactionDefinition得到TransactionStatus对象


  TransactionStatusgetTransaction(TransactionDefinitiondefinition)throwsTransactionException;


  //提交


  Voidcommit(TransactionStatusstatus)throwsTransactionException;


  //回滚


  Voidrollback(TransactionStatusstatus)throwsTransactionException;


  }


  总之,transactionmanager给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.