Spring学习总结(33)—— 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?
数据库引擎不支持事务
这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。根据 MySQL 的官方文档:
https://dev.mysql.com/doc/refman/5.5/en/storage-engine-setting.html
从 MySQL 5.5.5 开始的默认存储引擎是:InnoDB,之前默认的都是:MyISAM,所以这点要值得注意,底层引擎不支持事务再怎么搞都是白搭。
没有被 Spring 管理
如下面例子所示:
// @Service
public class OrderServiceImpl implements OrderService {
@Transactional
public void updateOrder(Order order) {
// update order
}
}
如果此时把 @Service 注解注释掉,这个类就不会被加载成一个 Bean,那这个类就不会被 Spring 管理了,事务自然就失效了。
方法不是 public 的
以下来自 Spring 官方文档:
When using proxies, you should apply the @Transactional annotation only to methods with public visibility. If you do annotate prot
Spring学习总结(33)—— 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?相关推荐
- 【Spring学习笔记 九】Spring声明式事务管理实现机制
什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...
- SSM框架中使用Spring的@Transactional注解进行事务管理
一 介绍 在企业级应用中,保护数据的完整性是非常重要的一件事.因此不管应用的性能是多么的高.界面是多么的好看,如果在转账的过程中出现了意外导致用户的账号金额发生错误,那么这样的应用程序也是不可接受的 ...
- Spring Boot 中使用 @Transactional 注解配置事务管理
From: https://blog.csdn.net/nextyu/article/details/78669997 事务管理是应用系统开发中必不可少的一部分.Spring 为事务管理提供了丰富的功 ...
- Spring学习(九)Spring 和数据库编程【了解】
本文借鉴:Spring学习,Spring框架总结 一.传统 JDBC 回顾 用一个大佬的demo来简单看一下 /*** 使用jdbc,根据id查询单个Student的信息*/ public class ...
- Spring学习(三)Spring AOP 简介
本文借鉴:Spring学习(特此感谢!) 一.简介 定义 aop就是面向切面编程,在数据库事务中切面编程被广泛使用. 在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 核心业务:比如登陆 ...
- Spring学习(二)Spring IoC 和 DI 简介
本文借鉴:Spring学习(特此感谢!) 一.IOC(控制反转) 定义:反转控制 (Inversion Of Control)的缩写,即创建对象的反转控制. 正向控制:若要使用某个对象,需要自己去负责 ...
- 【Spring学习笔记 四】Spring自动装配机制实践
我们一般学习某个知识,一定会现有个较为复杂的配置让你理解其中的关系,这个配置清晰规整,但是可能会需要大量的配置,这个时候就会有约定大于配置的理论实现了,通过我们约定好的一致的名称,我可以少写很多对应关 ...
- Spring学习(五)——Spring注解(一)
---恢复内容开始--- 概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射 ...
- Spring学习(十)Spring常见面试题汇总
本文借鉴:Spring框架总结,Spring容器中Bean的生命周期,69道Spring面试题和答案 一.前言 此篇文章一是为了整合一下常见的面试题,二也是为了简单的归纳一些常见的知识点,萌新刚上路, ...
最新文章
- 那些对混合云开发和应用程序环境的错误认识
- R语言ggplot2可视化将图例移动到分面图(facet)中的空白分面区域实战
- Dijkstra模板
- 2.11 linux的软防火墙apf安装配置
- ibm java_IBM i 上Java 虚拟机简介
- linux基础分支,Linux基础--/etc/shadow中字段的分支和操作
- Flutter入门篇(一)
- 一个wxWidgets判断注册表键值的函数
- 8086地址传送指令LEA,LDS,LES
- 搭建私有helm仓库及图形界面
- filter过滤器_web容器的过滤器Filter和拦截器Inteceptor的区别
- ajax请求成功和失败方法_创新需要反馈和失败的新方法
- 一、JSP的基本原理
- hdu1284钱币兑换问题
- linux matplotlib 中文显示乱码
- 原创|批处理实现安卓设备自动重启压力测试(自动生成日志和计算重启时间)
- 什么是443端口?HTTPS是什么端口?如何工作
- TCP中的RST标志(Reset)详解
- see “systemctl starus network.service“and “journalctl -xe for details克隆虚拟机出来网络ping不通百度的问题解决方案及解答
- JAVA面向对象编程(2)
热门文章
- java键盘监听keyadapter_JAVA 键盘监听当中,释放键盘并没有停止运动
- C++---------【多态性】之【静态多态性】
- map语法获取index_python获取慧聪企业信息
- 计算机组成原理第四版蒋本珊课件_2020北理计算机考研813回忆(刚考完新鲜出炉)...
- java 二分查找_JAVA 实现二分查找算法。我知道你会,但没你想象的那么简单
- 英雄联盟修复返回服务器异常,玩LOL英雄联盟在XP中服务器连接异常退出的恢复步骤...
- oracle调用MySQL函数,Oracle的INSTR函数MySQL实现
- 远程协助计算机是灰色的,服务器远程协助是灰色的
- android p preview_细数 Android P 开发者预览版中最不能错过的新特性
- 数据加载中gif_淮师大GIF加载中......