springboot使用事务原理
在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使用事务原理相关推荐
- SpringBoot中事务执行原理分析(一)
关联博文: SpringBoot中事务执行原理分析(一) SpringBoot中事务执行原理分析(二) SpringBoot中事务执行原理分析(三) SpringBoot中事务执行原理分析(四) Sp ...
- SpringBoot 自动开启事务原理
2019独角兽企业重金招聘Python工程师标准>>> 1,TransactionAutoConfiguration ①,这是SpringBoot 的事务注解自动配置类,位于spri ...
- springboot starter工作原理_springboot基础知识集结,你get到了吗
导读 首发于公众号:JAVA大贼船,原创不易,喜欢的读者可以关注一下哦!一个分享java学习资源,实战经验和技术文章的公众号! 一.SpringBoot的特点 Spring Boot 主要目标是: 为 ...
- 点击事件为什么会失效_Spring事务原理?事务在方法间如何传播?为什么会失效?...
推荐学习 疯狂膜拜!阿里出品Spring Security王者晋级文档 肝了十天半月,献上纯手绘"Spring/Cloud/Boot/MVC"全家桶脑图 前言 事务我们都知道是什么 ...
- springboot《计算机网络原理》课程试题库管理系统开发 毕业设计-附源码271129
Springboot<计算机网络原理>课程试题库管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得 ...
- springboot+班级事务管理 毕业设计-附源码211622
基于springboot班级事务管理 摘 要 随着信息科技在全社会的飞速发展与普及,网络技术的日渐成熟,计算机网络技术来实现"无纸办公"这个概念已经深入人心.本系统一班级事务管理相 ...
- Spring声明式事务原理
本文我们将通过一个简单的例子回顾Spring声明式事务的使用,并通过源码解读内部实现原理,最后通过列举一些常见事务不生效的场景来加深对Spring事务原理的理解. 1. 案例 新建SpringBoot ...
- 这样讲 SpringBoot 自动配置原理,你应该能明白了吧
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:你在我家门口 juejin.im/post/5ce5effb ...
- 不同类的方法 事务问题_深入理解 Spring 事务原理
Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...
- 分布式事务:分布式事务原理概述
1.什么是分布式事务 分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务: 2.分布式事务产生的原因 2.1.数据库分库分表 在单库单表场景下,当业务数据量达到单库单表的极限时,就 ...
最新文章
- LAMP搭建phpMyadmin管理平台以及wordpress个人博客系统
- 微软考虑将 Python 作为 Excel 官方脚本语言
- 网易云信阮良: 让客户能够连接一切,把整个精彩的世界连接起来
- 推荐5个免费项目管理工具
- 除了中国,原来还有这么多国家采用十二生肖的啊~| 今日最佳
- 零的突破!炸出圈的“女娲补天”教授获国家杰青!
- 使用jsp实现word excel格式报表打印-JSP教程 Jsp/Servlet
- mysql启动错误处理
- 编译程序 解释程序
- 京东金融品牌升级,为用户做精准决策,打造金融机构的“第二增长场景”
- java多线程-CountDownLatch
- 为什么Linux红帽认证能经久不衰?
- 利用ROUNDUP函数进行内存对齐
- lisp语言画地物符号_LISP语言在CAD工程制图中的应用_谢威
- AngularJS中文入门教程
- 自动控制原理之一稳态误差分析/MATLAB
- 解决 WebStorm 很卡的问题
- 南澳州政府拒绝更换DOS病历软件:称为患者安全着想
- 前端 Docker 镜像体积优化
- Oracle12C SGA PGA UGA
热门文章
- 信贷违约风险预测(四)TrAiNiNG MoDeL
- 卷积神经网络CNN:Tensorflow实现(以及对卷积特征的可视化)
- 237.删除链表中的节点
- h5商城模板_几个常用H5制作软件、网站推荐
- k-d Tree及其Java实现
- Python验证码识别处理实例
- 深度学习笔记(三):激活函数和损失函数
- 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别
- (1)算法设计与分析_算法设计思路
- android studio for android learning (二十七) UI控件动态加载机制浅析