网站页面怎么做的好看,建设银行河南省分行网站,深圳创业补贴怎么申请,推广网站联盟Spring中的事务是如何实现的? 背景个人原因的背景正规一点的背景 答案一些思绪和灵感个人理解程度拓展知识Spring的事务管理主要涉及哪几个类?在Spring中#xff0c;事务管理的流程是怎样的? 背景
个人原因的背景
想换工作, 刷面试题看到的问题, 简单记录一下, 算是个人… Spring中的事务是如何实现的? 背景个人原因的背景正规一点的背景 答案一些思绪和灵感个人理解程度拓展知识Spring的事务管理主要涉及哪几个类?在Spring中事务管理的流程是怎样的? 背景
个人原因的背景
想换工作, 刷面试题看到的问题, 简单记录一下, 算是个人学习的输出, 方便后续回顾, 也加深印象. 2024年11月14日09:32:49: 感觉我只看面试题, 完全看不进去. 通过不让自己手闲下来的方式, 促进一下我找工作的进程.
正规一点的背景
事务是确保数据的一致性和完整性. 还是很关键的. 面试也喜欢问.
答案
Spring 事务底层是基于数据库事务和AOP机制实现的.首先对于使用了Transaction注解的Bean, Spring 会创建一个代理对象作为Bean当调用代理对象的方法时, 会判断该方法上是否加了 Transaction 注解如果加了, 那么则利用事务管理器创建一个数据库连接并且修改数据库连接的autocommit属性为false, 禁止此事务自动提交, 这是Spring事务非常重要的一步.然后执行当前方法, 方法中会执行SQL执行完当前方法后, 如果没有出现一异常就直接提交事务.如果出现了异常, 并且这个异常是需要回滚的, 就会回滚事务, 否则仍然提交事务.Spring事务的隔离级别对应的就是数据库的隔离级别Spring事务的传播机制就是Spring事务自己实现的, 也是Spring事务中最复杂的Spring事务的传播机制是基于数据库连接来做的, 一个数据库连接一个事务, 如果传播机制配置为需要新开一个事务, 那么实际上就是先创立一个数据库连接, 在此新数据库连接上执行SQL.
一些思绪和灵感
Q: 事务为了解决什么问题? A: 如果程序中途出现的异常, 事务可以进行数据的回滚.
Q: 为什么事务很关键? A: 事务的控制
Q: 分布式系统, 怎么做事务的管理? A: 就是分布式事务. 系统A告诉系统B: 你需要回滚. 但是系统B: 我都一直处理完了, 怎么回滚?
Q: Spring事务的隔离级别, MySQL的事务隔离级别? A: 应该有一个枚举, 就是和市面的数据库产品对应的吧.
Q: 程序中有哪几种事务的方式: A: 我知道的有两种: 1.Spring注解的方式 2.编程式事务
个人理解程度
Spring的事务是通过Transcation注解实现的, 其底层原理就是利用了AOP, 面向切面的技术. autocommit 先关闭掉. 如果出现了需要回滚的异常, 就会执行回滚操作, 否则直接提交事务. 隔离级别和数据库的隔离级别保持一致. 传播机制, 是Spring自己去实现的, 我们一般都是用得默认的传播机制.
拓展知识
Spring的事务管理主要涉及哪几个类?
PlatformTransactionManager事务管理器负责事务的创建、提交和回滚等操作。TransactionDefinition事务定义用于指定事务的属性如隔离级别、传播行为等。TransactionStatus事务状态用于记录事务的生命周期状态如是否已经提交或回滚等。TransactionProxyFactoryBean代理工厂Bean用于创建代理对象。MethodInterceptor方法拦截器用于在方法执行前后添加事务管理的逻辑。
在Spring中事务管理的流程是怎样的?
当一个方法被标记为Transactional时Spring会创建一个代理对象来执行该方法。代理对象会在方法执行前后添加事务管理的逻辑包括事务的开始、提交或回滚等操作。如果方法执行成功则事务会被提交如果方法执行失败则事务会被回滚。