北京Java培训
达内北京中关村中心

010-62126400

热门课程

Java面试题集:JavaSpring事务常见面试

  • 时间:2019-11-12 20:07
  • 发布:北京java培训
  • 来源:笔试题

Spring和事务的关系

关系型数据库、某些消息队列等产品或中间件称为事务性资源,因为它们本身支持事务,也能够处理事务。

Spring很显然不是事务性资源,但是它可以管理事务性资源,所以Spring和事务之间是管理关系。

就像JackMa虽然不会写代码,但是他却管理者一大批会写代码的码农。

Spring事务三要素

数据源:表示具体的事务性资源,是事务的真正处理者,如MySQL等。

事务管理器:像一个大管家,从整体上管理事务的处理过程,如打开、提交、回滚等。

事务应用和属性配置:像一个标识符,表明哪些方法要参与事务,如何参与事务,以及一些相关属性如隔离级别、超时时间等。

Spring事务的注解配置

把一个DataSource(如DruidDataSource)作为一个@Bean注册到Spring容器中,配置好事务性资源。

把一个@EnableTransactionManagement注解放到一个@Configuration类上,配置好事务管理器,并启用事务管理。

把一个@Transactional注解放到类上或方法上,可以设置注解的属性,表明该方法按配置好的属性参与到事务中。

事务注解的本质

@Transactional这个注解仅仅是一些(和事务相关的)元数据,在运行时被事务基础设施读取消费,并使用这些元数据来配置bean的事务行为。

大致来说具有两方面功能,一是表明该方法要参与事务,二是配置相关属性来定制事务的参与方式和运行行为。

Spring声明式事务实现原理

声明式事务成为可能,主要得益于SpringAOP。使用一个事务拦截器,在方法调用的前后/周围进行事务性增强(advice),来驱动事务完成。

如何回滚一个事务

就是在一个事务上下文中当前正在执行的代码里抛出一个异常,事务基础设施代码会捕获任何未处理的异常,并且做出决定是否标记这个事务为回滚。

默认回滚规则

默认只把runtime,uncheckedexceptions标记为回滚,即RuntimeException及其子类,Error默认也导致回滚。Checkedexceptions默认不导致回滚。这些规则和EJB是一样的。

上一篇:java软件开发面试题及答案分享
下一篇:2019Java开发常见面试题新鲜出炉

马上预约七天免费体验课

姓名:

电话:

java培训班:京东JAVA面试心得与面试题详解

BAT面试题汇总:JVM+Spring+Dubbo+Redis+并发编程

离职10天,面4家公司,这些面试经验分享给你!

【录用】java面试遇到不会回答的问题,这样回答

选择城市和中心
江西省

贵州省

广西省

海南省