在springboot项目中,无需使用@EnableTransactionManagement注解,可以直接在业务方法上添加@Transactional注解,即可;但是如果是单纯的springmvc项目的话,就需要在配置类上添加@EnableTransactionManagement注解来开启全局事务

其实原因也很简单,就是因为springboot项目在启动的时候,帮我们自动添加了@EnableTransactionManagement注解;

在spring-boot-autoconfigure-2.2.2.RELEASE.jar这个jar包中,定义了要自动注入的bean

org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration

但是这个bean的注入,有一个前提条件,必须在DataSourceTransactionManagerAutoConfiguration这个bean注入之后,才会注入TransactionAutoConfiguration

在TransactionAutoConfiguration这个bean中,声明了一个静态内部类:EnableTransactionManagementConfiguration
在其类中,声明了开启事务注解的注释

@Configuration(proxyBeanMethods = false
)
@ConditionalOnBean({TransactionManager.class})
@ConditionalOnMissingBean({AbstractTransactionManagementConfiguration.class})
public static class EnableTransactionManagementConfiguration {public EnableTransactionManagementConfiguration() {}@Configuration(proxyBeanMethods = false)@EnableTransactionManagement(proxyTargetClass = true)@ConditionalOnProperty(prefix = "spring.aop",name = {"proxy-target-class"},havingValue = "true",matchIfMissing = true)public static class CglibAutoProxyConfiguration {public CglibAutoProxyConfiguration() {}}@Configuration(proxyBeanMethods = false)@EnableTransactionManagement(proxyTargetClass = false)@ConditionalOnProperty(prefix = "spring.aop",name = {"proxy-target-class"},havingValue = "false",matchIfMissing = false)public static class JdkDynamicAutoProxyConfiguration {public JdkDynamicAutoProxyConfiguration() {}}
}

springboot使用事务原理相关推荐

  1. SpringBoot中事务执行原理分析(一)

    关联博文: SpringBoot中事务执行原理分析(一) SpringBoot中事务执行原理分析(二) SpringBoot中事务执行原理分析(三) SpringBoot中事务执行原理分析(四) Sp ...

  2. SpringBoot 自动开启事务原理

    2019独角兽企业重金招聘Python工程师标准>>> 1,TransactionAutoConfiguration ①,这是SpringBoot 的事务注解自动配置类,位于spri ...

  3. springboot starter工作原理_springboot基础知识集结,你get到了吗

    导读 首发于公众号:JAVA大贼船,原创不易,喜欢的读者可以关注一下哦!一个分享java学习资源,实战经验和技术文章的公众号! 一.SpringBoot的特点 Spring Boot 主要目标是: 为 ...

  4. 点击事件为什么会失效_Spring事务原理?事务在方法间如何传播?为什么会失效?...

    推荐学习 疯狂膜拜!阿里出品Spring Security王者晋级文档 肝了十天半月,献上纯手绘"Spring/Cloud/Boot/MVC"全家桶脑图 前言 事务我们都知道是什么 ...

  5. springboot《计算机网络原理》课程试题库管理系统开发 毕业设计-附源码271129

    Springboot<计算机网络原理>课程试题库管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得 ...

  6. springboot+班级事务管理 毕业设计-附源码211622

    基于springboot班级事务管理 摘 要 随着信息科技在全社会的飞速发展与普及,网络技术的日渐成熟,计算机网络技术来实现"无纸办公"这个概念已经深入人心.本系统一班级事务管理相 ...

  7. Spring声明式事务原理

    本文我们将通过一个简单的例子回顾Spring声明式事务的使用,并通过源码解读内部实现原理,最后通过列举一些常见事务不生效的场景来加深对Spring事务原理的理解. 1. 案例 新建SpringBoot ...

  8. 这样讲 SpringBoot 自动配置原理,你应该能明白了吧

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:你在我家门口 juejin.im/post/5ce5effb ...

  9. 不同类的方法 事务问题_深入理解 Spring 事务原理

    Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...

  10. 分布式事务:分布式事务原理概述

    1.什么是分布式事务 分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务: 2.分布式事务产生的原因 2.1.数据库分库分表 在单库单表场景下,当业务数据量达到单库单表的极限时,就 ...

最新文章

  1. 五连阳回调买入法_“4连阳+1阴”这种股票,吃透主升浪!挣得万贯家财
  2. 关于开源网管软件选型的几点思考
  3. 《科学》盘点2018可能被聚焦的研究领域
  4. axure中备注线_琉璃:璇玑小本子上,别人名字都有备注唯独司凤没有,意义很浪漫...
  5. 解决Windows10搜索框空白的问题
  6. STL容器的capacity()和reserve()演示-----vector
  7. 国庆风头像一键制作网站源码
  8. Box2D v2.0.1 用户手册
  9. hive表ddl导出_Flink 1.11 与 Hive 批流一体数仓实践
  10. 什么是python自动化脚本_python自动化框架脚本
  11. node之npm一直出错
  12. fdisk、parted无损调整普通分区大小
  13. 域格4G模组开机网络注册流程
  14. 惠普打印机驱动程序安装失败解决
  15. 度歌虎山寨搜索引擎创始人竟是“90后”
  16. python中文分句_Python 中文分句
  17. mae python实现_使用Python进行机器学习:从0到1,构建回归模型(附完整教程)
  18. 因特网的起源/局域网/路由
  19. javaMail的java邮件
  20. DAY01加强版的java自学

热门文章

  1. 【易实战】Spring Cloud微服务架构12要素应用 Twelve‑Factor App
  2. freemaker if 多个条件_小函数,大用处!巧用AND函数,避开IF函数嵌套
  3. flask不运行主函数解决方法
  4. mysql--id主键列乱了之后,重新排序
  5. java多线程 同一资源_同一资源多线程并发访问时的完整性
  6. sql 只要一个字段相同则只显示一条数据_sql 有一个字段内容重复的 只显示一条的方法...
  7. Springboot日常游玩----logback的添加
  8. 【PRML 学习笔记】第一章 - 介绍 (Introduction)
  9. matlab仿真电子秤,基于单片机的电子秤设计
  10. excel查找空值快捷键_有了这7个Excel中常用的小技巧,再也不用担心自己要加班了!...