Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactional 便可。

关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager 如果你添加的是 spring-boot-starter-jdbc 依赖,框架会默认注入 DataSourceTransactionManager 实例。如果你添加的是 spring-boot-starter-data-jpa 依赖,框架会默认注入 JpaTransactionManager 实例。

你可以在启动类中添加如下方法,Debug测试,就能知道自动注入的是 PlatformTransactionManager 接口的哪个实现类。

aaarticlea/png;base64,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" alt="" />

这些SpringBoot为我们自动做了,这些对我们并不透明,如果你项目做的比较大,添加的持久化依赖比较多,我们还是会选择人为的指定使用哪个事务管理器。 
代码如下:

aaarticlea/png;base64,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" alt="" />

在Spring容器中,我们手工注解@Bean 将被优先加载,框架不会重新实例化其他的 PlatformTransactionManager 实现类。

然后在Service中,被 @Transactional 注解的方法,将支持事务。如果注解在类上,则整个类的所有方法都默认支持事务。

对于同一个工程中存在多个事务管理器要怎么处理,请看下面的实例,具体说明请看代码中的注释。

@EnableTransactionManagement // 开启注解事务管理,等同于xml配置文件中的 <tx:annotation-driven /> @SpringBootApplication public class ProfiledemoApplication implements TransactionManagementConfigurer { @Resource(name="txManager2") private PlatformTransactionManager txManager2; // 创建事务管理器1 @Bean(name = "txManager1") public PlatformTransactionManager txManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } // 创建事务管理器2 @Bean(name = "txManager2") public PlatformTransactionManager txManager2(EntityManagerFactory factory) { return new JpaTransactionManager(factory); } // 实现接口 TransactionManagementConfigurer 方法,其返回值代表在拥有多个事务管理器的情况下默认使用的事务管理器 @Override public PlatformTransactionManager annotationDrivenTransactionManager() { return txManager2; } public static void main(String[] args) { SpringApplication.run(ProfiledemoApplication.class, args); } }

注: 
如果Spring容器中存在多个 PlatformTransactionManager 实例,并且没有实现接口 TransactionManagementConfigurer 指定默认值,在我们在方法上使用注解 @Transactional 的时候,就必须要用value指定,如果不指定,则会抛出异常。

对于系统需要提供默认事务管理的情况下,实现接口 TransactionManagementConfigurer 指定。

对有的系统,为了避免不必要的问题,在业务中必须要明确指定 @Transactional 的 value 值的情况下。不建议实现接口 TransactionManagementConfigurer,这样控制台会明确抛出异常,开发人员就不会忘记主动指定。

aaarticlea/png;base64,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" alt="" />

Spring Boot 事务的使用的更多相关文章

  1. Spring Boot事务管理(上)

    摘要 本文主要介绍基于Spring Boot的事务管理,尤其是@Transactional注解详细用法.首先,简要介绍Spring Boot中如何开启事务管理:其次,介绍在Spring,Spring ...

  2. Spring Boot事务管理(中)

    在上一篇 Spring Boot事务管理(上)的基础上介绍Spring Boot事务属性和事务回滚规则 . 4 Spring Boot事务属性 什么是事务属性呢?事务属性可以理解成事务的一些基本配置, ...

  3. Spring Boot事务管理(下)

    在上两篇 Spring Boot事务管理(上)和Spring Boot事务管理(中)的基础上介绍注解@Transactional. 5 @Transactional属性 属性 类型 描述 value ...

  4. 五、Spring Boot 事务

    spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactio ...

  5. 【Spring Boot学习之四】Spring Boot事务管理

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.springboot整合事务事务分类:编程事务.声明事务(XML.注解),推荐使用注解方式,springboot默 ...

  6. spring boot事务管理

    spring boot集成事务十分的简单,只需要在启动类上面增加@EnableTransactionManagement注解,然后在需要实现事务的方法上添加@Transactional注解就可以了.下 ...

  7. Spring Boot事务支持

    一.创建项目 二.添加依赖 <dependencies> <dependency> <groupId>org.projectlombok</groupId&g ...

  8. Java框架spring Boot学习笔记(六):Spring Boot事务管理

    SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.

  9. spring boot 事务

    spring事务:默认自动提交只读:@Transactional(readOnly = true)读写:@Transactional(),因为等同于@Transactional(readOnly = ...

随机推荐

  1. Nuget 通过 dotnet 命令行发布

    在开发完成一个好用的轮子就想将这个轮子发布到 nuget 让其他小伙伴可以来使用,但是 nuget.org 的登陆速度太慢,本文介绍一个命令行发布的方法,通过命令行发布的方法可以配合 Jenkins ...

  2. jQuery-自己封装的弹框

    (function () { CDK={ cfm:function(resFun,errFun){ var confirm=document.createElement('div'); confirm ...

  3. Spring Data JPA坑点记录

    本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...

  4. ios设备iframe无法滚动

    在使用IFRAME,你需要使用一个元素(如DIV)来包装他们 <div class="scroll-wrapper"> <iframe src="&qu ...

  5. ubuntu-wine

    sudo dpkg --add-architecture i386 sudo add-apt-repository ppa:wine/wine-buildssudo apt-get update su ...

  6. poj/OpenJ_Bailian - 2528 离散化+线段树

    传送门:http://bailian.openjudge.cn/practice/2528?lang=en_US //http://poj.org/problem?id=2528 题意: 给你n长海报 ...

  7. ansible核心模块playbook介绍

    ansible的playbook采用yaml语法,它简单地实现了json格式的事件描述.yaml之于json就像markdown之于html一样,极度简化了json的书写.在学习ansible pla ...

  8. slim中的参数获取

    官方文档中对于get和post的参数有以下获取方式 $app->get('/', function (Request $req, Response $res, $args = []) { $my ...

  9. github 项目搜索技巧-让你更高效精准地搜索项目

    目录 github 搜索技巧 案例 普通搜 搭配技巧搜 限定词 查找某个用户或组织的项目 辅助限定词 还没搞懂的(关于 forks.mirror.issues) 排序(放的是官网的链接) 使用指南 练 ...

  10. ASP.NET MVC API以及.Core API进行安全拦截和API请求频率控制

    安全拦截思路: 根据IP以及请求次数,该IP超过规定请求次数,就有很大可能是非正常用户进行的请求(比如WEB攻击),这时候进行拦截,拦截成功会提示:The allowed number of requ ...