当前位置: 首页 > news >正文

住房和城乡建设岗位评定网站长沙网络公司营销推广

住房和城乡建设岗位评定网站,长沙网络公司营销推广,用静态网站更新,山西网络营销seo如果你想寻求一份与后端相关的开发工作,那么关于Spring事务相关的面试题你就不能说不会并且不能不知道? 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步? 一.Spring中声明事务的方式 1.1 编程式事务 编程…

如果你想寻求一份与后端相关的开发工作,那么关于Spring事务相关的面试题你就不能说不会并且不能不知道?

在这里插入图片描述

@人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?

一.Spring中声明事务的方式

1.1 编程式事务

编程式事务每次实现都要单独实现,但业务量大功能复杂时,使用编程式事务无疑是痛苦的,而声明式事务不同,声明式事务属于无侵入式,不会影响业务逻辑的实现。

1.2 声明式事务

声明式事务属于无侵入式,不会影响业务逻辑的实现。基于@Transactional注解,事务传播级别基于该注解实现。

二.Spring事务的隔离级别?

2.1 Spring默认事务隔离级别

Spring默认的事务隔离是DEFAULT (默认),其作用的效果就是使用数据库默认的事务隔离级别。
Spring事物的隔离级别比数据库事务隔离级别多一个 Default。

2.2 Spring事务隔离级别分类

  1. DEFAULT (默认)
    这是一个 PlatfromTransactionManager 默认的隔离级别,使用数据库默认的事务隔离级别。另外四个与 MySQL的隔离级别相对应。

  2. READ_UNCOMMITTED (读未提交)

  3. READ_COMMITTED (读已提交)

  4. REPEATABLE_READ (可重复读)

  5. SERIALIZABLE(串行化)

三.讲下嵌套事务?

3.1 嵌套事务的基本定义

嵌套事务:就是事务方法A调用事务方法B,外层调用方法和内层被调用方法都是事务方法的情况。
一般我们不关心外层调用方法的事务传播行为。而只关心内层被调用方法的传播行为。

3.2 嵌套事务的应用场景

  1. 外层调用方法和内层被调用方法,有异常一起回滚,没问题一起提交。(共用一个事务)
  2. 内层被调用方法回滚与否,不会影响外层调用方法。而外层调用方法出异常回滚,也不会回滚内层被调用方法(两个独立的事务)
  3. 内层被调用方法回滚与否,不会影响外层调用方法。而外层调用方法出异常回滚,也会回滚内层被调用方法(嵌套事务)

3.3 每种应用场景下对应的事务传播行为

  1. @Transactional(propagation=Propagation.REQUIRED) :内外层方法共用外层方法的事务。

  2. @Transactional(propagation=Propagation.REQUIRES_NEW) :当执行内层被调用方法时,外层方法的事务会挂起。两个事务相互独立,不会相互影响。

  3. @Transactional(propagation=Propagation.NESTED) :外事务回滚,内事务也会回滚。

四.Spring事务传播行为有哪些呢?

4.1 基本概念

事务的传播行为(propagation)就是为了解决外层方法调用内层事务方法的各个情况的。

4.2 Spring默认隔离级别

Spring事务的传播级别默认是Propagation.REQUIRED级别。

4.3 Spring事务隔离级别分类

接下来我们就来看看Spring事务传播级别:

  1. Propagation.REQUIRED:支持当前事务,如果没有事务会创建一个新的事务
  2. Propagation.SUPPORTS:支持当前事务,如果没有事务的话以非事务方式执行
  3. Propagation.MANDATORY:支持当前事务,如果没有事务抛出异常
  4. Propagation.REQUIRES_NEW:创建一个新的事务并挂起当前事务
  5. Propagation.NOT_SUPPORTED:以非事务方式执行,如果当前存在事务则将当前事务挂起
  6. Propagation.NEVER:以非事务方式进行,如果存在事务则抛出异常
  7. Propagation.NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作

4.4 Propagation.NESTED 与 Propagation.REQUIRES_NEW 的区别:

Propagation.NESTED 与 Propagation.REQUIRES_NEW 非常类似,都像一个嵌套事务,如果不存在一个活动的事务,都会开启一个新的事务。

  1. 使用Propagation.REQUIRES_NEW 时,内层事务与外层事务就像两个独立的事务一样,一旦内层事务进行了提交后,外层事务不能对其进行回滚。两个事务互不影响。两个事务不是一个真正的嵌套事务。同时它需要 JTA 事务管理器的支持。

  2. 使用Propagation.NESTED 时,外层事务的回滚可以引起内层事务的回滚。而内层事务的异常并不会导致外层事务的回滚,它是一个真正的嵌套事务。

五.勉励

屏幕前的小伙伴,我想对你们说,也想对自己说,让我们抛弃忧虑,相信自己,慢一点,不要让自己过于功利,太急于求成,但行好事,莫问前程,你一定可以的,比心,我们一起加油!

下期见!

http://www.hengruixuexiao.com/news/23511.html

相关文章:

  • 清河做网站哪儿好在线培训平台
  • 山西做网站哪个好seo赚钱方法大揭秘
  • wordpress网站添加密码访问广告免费发布信息
  • 党建与经济建设网是什么网站中国十大电商平台有哪些
  • 做文案图片上什么网站连接友谊
  • 公众号开发费用商丘seo排名
  • wordpress做复杂网站湖南广告优化
  • 罗店网站建设广州seo关键词优化是什么
  • 临沂网站制作公司哪家好北京百度搜索排名优化
  • 做图片网站侵权吗图片搜索引擎
  • 源代码怎么做网站整合营销传播方法包括
  • 长春网站建设小程序google权重查询
  • 企业网站管理系统登陆体验式营销
  • 长沙网站推广平台深圳网站提升排名
  • 西安企业网站seo永久免费自助建站软件
  • php网站目录系统百度一下知道首页
  • 网站文章标题中国科技新闻网
  • 网站策划设计建设图片外链上传网站
  • 企业做网站的注意什么问题今天发生了什么重大新闻
  • 长沙专业做网站公司搜索引擎优化核心
  • 做渔具最大的外贸网站网站项目开发流程
  • 做网站效果图站长网站优化公司
  • 做门户网站的网络公司聚名网域名注册
  • 界面设计优秀的网站有哪些知名品牌营销策划案例
  • 网页升级紧急通知页面升级网站优化有哪些类型
  • 橙色界面网站百度客服投诉中心
  • html5与css3网页设计论文seo优化排名服务
  • 上海网站建设公司地址seo伪原创工具
  • 查询网站外链品牌宣传的推广
  • 怎么看别人网站是怎么做的百度热线