Spring 使用注解方式进行事务管理
2019独角兽企业重金招聘Python工程师标准>>>
大家在使用spring的注解式事务管理时,对事务的传播行为和隔离级别可能有点不知所措,下边就详细的介绍下以备方便查阅。
事物注解方式: @Transactional
当标于类前时, 标示类中所有方法都进行事物处理
例子:
@Transactional
public class TestServiceBean implements TestService {}
当类中某些方法不需要事物时:
@Transactional
public class TestServiceBean implements TestService {
private TestDao dao;
public void setDao(TestDao dao) {
this.dao = dao;
}
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public List<Object> getAll() {
return null;
}
}
事物传播行为介绍:
@Transactional(propagation=Propagation.REQUIRED)
如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不为这个方法开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY)
必须在一个已有的事务中执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER)
必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS)
如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
事物超时设置:
@Transactional(timeout=30) //默认是30秒
事务隔离级别:
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
读取未提交数据(会出现脏读, 不可重复读) 基本不使用
@Transactional(isolation = Isolation.READ_COMMITTED)
读取已提交数据(会出现不可重复读和幻读)
@Transactional(isolation = Isolation.REPEATABLE_READ)
可重复读(会出现幻读)
@Transactional(isolation = Isolation.SERIALIZABLE)
串行化
MYSQL: 默认为REPEATABLE_READ级别
SQLSERVER: 默认为READ_COMMITTED
脏读 : 一个事务读取到另一事务未提交的更新数据
不可重复读 : 在同一事务中, 多次读取同一数据返回的结果有所不同, 换句话说,
后续读取可以读到另一事务已提交的更新数据. 相反, "可重复读"在同一事务中多次
读取数据时, 能够保证所读数据一样, 也就是后续读取不能读到另一事务已提交的更新数据
幻读 : 一个事务读到另一个事务已提交的insert数据
转载于:https://my.oschina.net/rouchongzi/blog/161587
Spring 使用注解方式进行事务管理相关推荐
- Spring 使用注解方式进行事物管理
Spring 使用注解方式进行事物管理 大家在使用spring的注解式事务管理时,对事务的传播行为和隔离级别可能有点不知所措,下边就详细的介绍下以备方便查阅. 事物注解方式: @Transaction ...
- Spring AOP注解方式实现日志管理
文章目录 自定义注解 BussLog BussLogAspect 前言:使用注解方式实现日志管理,可以使我们的程序变的清晰.简单,不和很多业务代码混在一起. 实现思路大致分为四点 设计日志表和日志类, ...
- Spring 注解方式实现 事务管理
2019独角兽企业重金招聘Python工程师标准>>> 使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="h ...
- 注解mysql事物管理_Spring 使用注解方式进行事务管理
事务的传播行为和隔离级别 大家在使用spring的注解式事务管理时,对事务的传播行为和隔离级别可能有点不知所措,下边就详细的介绍下以备方便查阅. 事物注解方式: @Transactional 当标于类 ...
- 事务配置_SSH(五)- 使用注解方式配置事务管理
步骤1:修改applicationContext.xml步骤2:为ProductServiceImpl 添加注解步骤3:测试步骤4:MYSQL 表的类型必须是INNODB才支持事务 步骤 1 : 修改 ...
- Spring mvc注解方式使用事务回滚
项目名:1ma1ma jdbc.xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDat ...
- spring AOP自定义注解方式实现日志管理
转:spring AOP自定义注解方式实现日志管理 今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理.废话不多说,直接 ...
- spring boot配置mybatis和事务管理
spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...
- Spring ORM示例 - 带有AOP事务管理
Spring ORM示例 - 带有AOP事务管理 这是一个非常简单的Spring ORM示例,向您展示如何使用Spring配置应用程序 依赖注入(@Autowired annotation), JPA ...
最新文章
- 算法每日练习之判断完数
- 赠书:“替代Linux”?!全球技术海啸来临!
- Thinking in work
- [笔试面试][code_by_hand]输出第二个字符串在第一个字符串中的连接次序
- 028_vue路由嵌套
- 基于MapWinGis的开发探索(三)--改善缩放、渲染、显示文本
- void main()是错误的
- c语言用户登录成功才能,c语言用户登录.docx
- WINDOWS自带的压缩,解压工具命令
- 190707每日一句,一堂重要的人生之课Let it go, 穷则变变则通
- ATK-ESP8266 串口转WIFI模块 简历
- 【翻译】torch.device的使用举例
- 嵌入式开发-服务器(一) MQTT服务器
- 设计模式总结--李建忠
- Java基础语法等等
- 图片瀑布流加载和购物车
- 5种写作技巧,即使是业余爱好者也能像专业人士一样写作
- 2021天津高考高中成绩查询系统,2021天津市地区高考成绩排名查询,天津市高考各高中成绩喜报榜单...
- linux系统中的挂载有什么用,linux 挂载详解
- 1.2 CSS 基础
热门文章
- 想成为优秀的管理者,不能不知道的决策方法
- 这可能是最简单易懂的机器学习入门
- SAP MM 没有维护MRP 视图的物料可以正常参与采购业务
- SAP LSMW Standard Batch (Direct) Input 方式制作的LSMW工具导入OPEN PO 单据时候’税码’字段的处理
- 干货丨大牛带你走向机器学习“正道”:小朋友才迷信算法,大人们更重视工程实践
- 中文分词jieba的简单使用
- 北大发布最新《图神经网络推荐系统》2020综述论文,27页pdf
- ​MEMS在未来面临的挑战
- 坦途与波折:我们需要什么样的人工智能?
- 工业富联2018年报来了!上市后首张成绩单大起底