建设网站总结报告,网站页脚有什么作用,怎么改wordpress字体,网站建设 企炬如果你想寻求一份与后端相关的开发工作#xff0c;那么关于Spring事务相关的面试题你就不能说不会并且不能不知道#xff1f; 人生如棋#xff0c;我愿为卒#xff0c;行动虽慢#xff0c;可谁曾见我后退一步#xff1f; 一.Spring中声明事务的方式
1.1 编程式事务
编程…如果你想寻求一份与后端相关的开发工作那么关于Spring事务相关的面试题你就不能说不会并且不能不知道 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 一.Spring中声明事务的方式
1.1 编程式事务
编程式事务每次实现都要单独实现但业务量大功能复杂时使用编程式事务无疑是痛苦的而声明式事务不同声明式事务属于无侵入式不会影响业务逻辑的实现。
1.2 声明式事务
声明式事务属于无侵入式不会影响业务逻辑的实现。基于Transactional注解事务传播级别基于该注解实现。
二.Spring事务的隔离级别
2.1 Spring默认事务隔离级别
Spring默认的事务隔离是DEFAULT 默认其作用的效果就是使用数据库默认的事务隔离级别。 Spring事物的隔离级别比数据库事务隔离级别多一个 Default。
2.2 Spring事务隔离级别分类 DEFAULT 默认 这是一个 PlatfromTransactionManager 默认的隔离级别使用数据库默认的事务隔离级别。另外四个与 MySQL的隔离级别相对应。 READ_UNCOMMITTED 读未提交 READ_COMMITTED 读已提交 REPEATABLE_READ 可重复读 SERIALIZABLE串行化
三.讲下嵌套事务
3.1 嵌套事务的基本定义
嵌套事务就是事务方法A调用事务方法B外层调用方法和内层被调用方法都是事务方法的情况。 一般我们不关心外层调用方法的事务传播行为。而只关心内层被调用方法的传播行为。
3.2 嵌套事务的应用场景
外层调用方法和内层被调用方法有异常一起回滚没问题一起提交。共用一个事务内层被调用方法回滚与否不会影响外层调用方法。而外层调用方法出异常回滚也不会回滚内层被调用方法两个独立的事务内层被调用方法回滚与否不会影响外层调用方法。而外层调用方法出异常回滚也会回滚内层被调用方法嵌套事务
3.3 每种应用场景下对应的事务传播行为 Transactional(propagationPropagation.REQUIRED) 内外层方法共用外层方法的事务。 Transactional(propagationPropagation.REQUIRES_NEW) 当执行内层被调用方法时外层方法的事务会挂起。两个事务相互独立不会相互影响。 Transactional(propagationPropagation.NESTED) :外事务回滚内事务也会回滚。
四.Spring事务传播行为有哪些呢
4.1 基本概念
事务的传播行为propagation就是为了解决外层方法调用内层事务方法的各个情况的。
4.2 Spring默认隔离级别
Spring事务的传播级别默认是Propagation.REQUIRED级别。
4.3 Spring事务隔离级别分类
接下来我们就来看看Spring事务传播级别:
Propagation.REQUIRED:支持当前事务如果没有事务会创建一个新的事务Propagation.SUPPORTS:支持当前事务如果没有事务的话以非事务方式执行Propagation.MANDATORY:支持当前事务如果没有事务抛出异常Propagation.REQUIRES_NEW:创建一个新的事务并挂起当前事务Propagation.NOT_SUPPORTED:以非事务方式执行如果当前存在事务则将当前事务挂起Propagation.NEVER:以非事务方式进行如果存在事务则抛出异常Propagation.NESTED:如果当前存在事务则在嵌套事务内执行。如果当前没有事务则进行与PROPAGATION_REQUIRED类似的操作
4.4 Propagation.NESTED 与 Propagation.REQUIRES_NEW 的区别
Propagation.NESTED 与 Propagation.REQUIRES_NEW 非常类似都像一个嵌套事务如果不存在一个活动的事务都会开启一个新的事务。 使用Propagation.REQUIRES_NEW 时内层事务与外层事务就像两个独立的事务一样一旦内层事务进行了提交后外层事务不能对其进行回滚。两个事务互不影响。两个事务不是一个真正的嵌套事务。同时它需要 JTA 事务管理器的支持。 使用Propagation.NESTED 时外层事务的回滚可以引起内层事务的回滚。而内层事务的异常并不会导致外层事务的回滚它是一个真正的嵌套事务。
五.勉励
屏幕前的小伙伴我想对你们说也想对自己说让我们抛弃忧虑相信自己慢一点不要让自己过于功利太急于求成但行好事莫问前程你一定可以的比心我们一起加油
下期见