如何免费建设网站免费logo设计在线生成器官网

news/2025/10/2 23:05:04/文章来源:
如何免费建设网站,免费logo设计在线生成器官网,免费做h5的网站知乎,培训机构贴一篇源码分析的好文章#xff1a;https://blog.csdn.net/qq_30905661/article/details/114400417 本质#xff1a; 一个事务对应一个数据库连接。 通过 this 来调用某个带有 Transactional 注解的方法时#xff0c;这个注解是失效的#xff0c;可以看做这个方法#x…贴一篇源码分析的好文章https://blog.csdn.net/qq_30905661/article/details/114400417 本质 一个事务对应一个数据库连接。 通过 this 来调用某个带有 Transactional 注解的方法时这个注解是失效的可以看做这个方法如上图B上没有这个注解当然书写的传播机制限制也是无效的例如propagation Propagation.MANDATORY、propagation Propagation.NEVER。 但是若调用A的是CGLIB生成的代理对象并且A上有 Transactional 注解那么方法A是具有事务的方法B中的sql 就在方法A的事务中执行所以整体AB是有事务的。 Spring的事务是如何实现的 spring事务底层是通过数据库事务和AOP实现的首先对于使用Transactional的注解的beanspring会创建一个代理对象作为bean当调用代理对象的方法时spring会判断该方法上是否加了Transactional注解如果加了就会利用事务管理器创建一个数据库连接并修改数据库连接的 autocommit 为 false禁止自动提交然后执行该方法若方法没有抛异常则会提交事务反之亦然spring事物的隔离级别就是对应数据库的隔离级别spring事务的传播机制是spring自己实现的是spring事务中最复杂的spring事物的传播机制是基于数据库连接来做的一个连接一个事务传播事务实际上是开了一个新的数据库连接在此基础上执行sql Spring事物的传播机制 spring事务默认是注解是 REQUIRED支持事务的传播使用同一个数据库连接。 REQUIREDspring默认的事务传播机制A存在事务则B加入A的事务A没有事务则会新建一个数据库事务 SUPPORTS支持当前事务如果当前存在事务就加入该事务如果当前不存在事务就以非事务执行 MANDATORY强制性使用第一个事务A存在事务则B加入A的事务A没有事务则抛异常 REQUIRES_NEW创建一个新事务B在这个新事务中执行A如果有事务将会被挂起等待B事务方法执行结束commit or rollback当B事务执行结束后A事务被唤醒继续执行若B抛出了异常给A 或 A 方法执行出了异常那么在 A 事务中执行的 sql 将会被回滚B 事务中的sql 由B的事务管理器控制A、B中的sql不在同一数据库连接中执行即内层事务B已经 commit 或 rollback 外层事务干扰不了。 NOT_SUPPORTED不支持事务若A存在事务则挂起A的事务以非事务方式运行 NEVER不支持事务若A存在事务抛异常 NESTEDA存在事务则在嵌套事务中执行不存在则和 REQUIRED 一样开启一个新事务 那些情况会导致Spring事务的失效失效的原因是 数据库不支持事务 类没有被spring管理ioc没有加注解。 未启用Spring事务管理功能EnableTransactionManagement 数据源没有配置事务管理器 Bean public PlatformTransactionManager transactionManager(DataSource dataSource){return new DataSourceTransactionManager(dataSource); }没有加Configuration注解springboot基本没有这个问题Spring可能会出现这个问题原因是由于mybatis或JdbcTemplate会从ThreadLocal中获取数据库连接但是ThreadLocal底层引用的是ThreadLocalMapMap的key是一个DataSource对象value是数据库连接。如果没有加Configuration注解的话会导致Map中的DataSource对象和mybatis、jdbcTenplate中的DataSource对象不相等所有就拿不到数据库连接以至于自己去创建连接了。 异常被吃掉默认情况下Spring会捕获 error 和 RunTimeException spring捕获不到异常也就不会回滚了例如 try-catch 方法是private的spring事务基于CGLIB来进行AOPCGLIB是基于父子类来实现子类是代理类子类无法重写父类的private方法也就没有办法增加spring事务逻辑。 方法是 final 修饰的和private原因一致子类不能重写增强。 调用A方法和B方法不是同一个线程不同的线程拿到的数据库连接不一样。TransactionSynchronizationManager.bindResource 会将线程与数据库连接绑定。 rollbackFor RuntimeException.class默认当抛出的异常大于定义的异常则会导致事务失效 方法内自调用时对象不是同一个Spring事务是基于Aop只有使用代理对象调用 A 方法时注解才能生效而在A方法中调用 B 方法时 this.B() 并不是使用的代理对象所以导致B的注解失效。 自身调用失效问题 方法A 通过 this.B() 调用方法B。 本质通过 this 来调用某个带有 Transactional 注解的方法时这个注解是失效的可以看做这个方法如上图B上没有这个注解当然书写的传播机制限制也是无效的例如propagation Propagation.MANDATORY、propagation Propagation.NEVER。 但是若调用A的是CGLIB生成的代理对象并且A上有 Transactional 注解那么方法A是具有事务的方法B中的sql 就在方法A的事务中执行所以整体AB是有事务的。 调用使用Transactional注解的方法时使用的是 Spring CGLIB 创建的代理对象 调用B方法的是存储在 Spring ioc容器的bean两个不同的对象 A调用B的结论 只要A加Transactional注解A和B在不在同一个类中B加不加Transactional注解事务都是有效的则AB在同一事务中。A 不加 B加A和B同一个类中调用A方法的是CGLIB生成的代理对象但是A方法没有注解所以A方法不会被拦截this调用B注解失效下图。A 不加 B加A和B不在同一个类中不在同一个类那么调用B的就是的就是CGLIB生成的代理对象B的事务有效A在外围没有事务B已经commit或rollback了事务管理器已经把设置auto commit false的数据库连接释放了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让别人做网站需要提供什么企业黄页网站源码

前言:当设计师通过photoshop工具设计完设计稿导出psd文件时,我们前端工程师该如何进行切图转换成网页的所需的图片呢,接下来讲讲如何利用photoshop工具快速简洁的切图,因为ps工具用到的行业很多,涉及到的各个行业&…

使用Java将Word文件转换为PNG图片 - 指南

使用Java将Word文件转换为PNG图片 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

论文速读记录 | 2025.10

2025.10 | 速读文章纪录目录Horizon Generalization in Reinforcement LearningHIQL: Offline Goal-Conditioned RL with Latent States as ActionsContrastive Preference Learning: Learning from Human Feedback wi…

【Rust GUI开发入门】编写一个本地音乐播放器(15. 记录运行日志) - Jordan

本系列教程对应的代码已开源在 Github zeedle 本篇文章介绍如何将音乐播放器的运行情况持久化记录到日志文件中,这对分析程序意外情况出现的原因很有帮助! 使用最常用的env_logger,将其添加到Cargo.toml中: env_lo…

成都网站建设 3ewordpress简单投稿

在现代社会中,电力是我们生活和工作不可或缺的一部分。大楼宾馆作为城市中繁忙生活的一部分,依赖于可靠的电力供应来支持各种设施和服务,从客房照明到电梯运行,无一不离电。然而,大楼宾馆电力分配系统的稳定性和安全性…

6 种常见 AI 编程协作便捷的方法总结

6 种常见 AI 编程协作便捷的方法总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

可以做产品推广的网站flash网站整站下载

目录 1.1 关于版本控制 1.1.1 本地版本控制 1.1.2 集中化的版本控制系统 1.1.3 分布式版本控制系统 1.2 Git简介 1.2.1 Git历史 1.3 安装git 1.3.1 环境说明 1.3.2 Yum安装Git 1.3.3 编译安装 1.4 初次运行 Git 前的配置 1.4.1 配置git 1.4.2 获取帮助 1.5 获取 G…

DeploySharp开源发布:让C#部署深度学习模型更加简单

DeploySharp:面向C#开发者的跨平台模型部署框架 DeploySharp是一款专为C#开发者设计的深度学习模型部署框架,支持OpenVINO和ONNX Runtime推理引擎,兼容YOLOv5-v12全系列模型以及Anomalib等主流模型。该框架采用模块…

光伏电站建设的国家网站湖南网站托管

java之NIO 1 什么是NIO Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO的三大核心部分:通道(Channel),缓冲区(Buffer), 选择器(Selector),数据总是从…

视频多的网站建设如何建设一个静态网站

什么是柔性数组 什么是柔性数组?柔性数组其实也是动态内存管理部分的内容。这节主要来复习柔性数组的知识点。 当结构体的最后一个成员为数组, 且这个数组的大小未确定时, 我们就称它是柔性数组。 如: struct stu{char name[…

泰康人寿保险官方网站专题学习网站模板

boot读取配置文件1. yml配置文件2. 绑定方式13. 绑定方式23.1 依赖.3.2 boot 中提供的属性装配功能。1. 在某些业务中,需要将类的配置写到配置文件中, 不在代码中写死配置。 2. 所以需要读取配置文件(yaml, properties) 读取到Java Bean中。 3. 本文以oss对象存储配…

别样的国庆作业大战

一天,文科给我(理科)打来电话。他说:“你敢不敢和我举行假期作业量大战?”我豪爽的答应了:“我当然敢!我有 \(10^{12180211} \operatorname{mol}\) 试卷!2025.10.1 在 XXX 中高一年级举行,谁不来谁就是怂货。…

淘宝网站的建设目的是什么意思长沙网站托管seo优化公司

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 1、目前市面上的加密的方式 对称式加密:DES,AES,Base64加密算法 非对称加密&#xff1a…

摄影网站设计思想宁波优质网站制作哪家好

linux 常用的帮助命令 1.help -相当于man的简化版 例如:vim –help 2.man: 详细介绍vim的用法 例如:man vim 3.info:偏重介绍文档 例如: info vim

ROS2之服务

ROS2 的服务(Service)概念:服务是一种 请求-响应(request-response)通信机制,由 客户端(Client) 和 服务端(Server) 两部分组成。通信模式:客户端 发送一个请求(Request)。服务端 处理请求,并返回响应(…

北京公司建网站要多少费用江门站官网

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 k &#xff0c;请你返回满足 0 < i < j < n &#xff0c;nums[i] nums[j] 且 (i * j) 能被 k 整除的数对 (i, j) 的 数目 。 示例 1&#xff1a; 输入&#xff1a;nums …

macOS上优雅运行Docker容器

colima 什么是colima colima主页 Colima(Container on Lima)是一个轻量级的容器运行时管理工具,专为macOS(同时也支持Linux)设计,提供了一种简单优雅的方式来运行容器。它基于Lima项目,后者为 macOS提供了类似W…

怎样模仿别人的网站wordpress免插件代码高亮

TCP/IP协议—TCP TCP协议TCP通信特点TCP技术概念TCP定时器 TCP头部报文TCP连接三次握手&#xff08;建立连接&#xff09;四次挥手&#xff08;释放连接&#xff09;连接状态 TCP协议 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种…

使用IOT-Tree Server依据MC协议连接三菱Q系列PLC

使用IOT-Tree Server依据MC协议连接三菱Q系列PLC2025-10-02 22:40 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

长春网站设计团队html自我介绍网页模板

1. 基本架构 ovs-vsctl: 管理ovsdb-server的配置&#xff0c;提供OVSDB的配置方法&#xff0c;包括创建和删除网桥、端口等&#xff1b; ovs-ofctl: 提供ovs-vswitchd的流表配置方法&#xff1b; ovs-dpctl: 配置OVS内核模块&#xff0c;提供缓存流表的操作方法&#xff1b…