11.28 Spring-事务

本文详细介绍了Spring中的事务管理,包括事务的ACID四大特性、事务操作步骤、声明式事务管理的注解及XML配置方式,并通过实例展示了如何在Service层接口上应用事务。此外,还探讨了事务的7种传播行为,以及在@Transactional注解中设置事务属性如readOnly、timeout等。
摘要由CSDN通过智能技术生成

目录

1.Spring事务

2.事务的特点(ACID)

3.事务操作

4.操作实例

5.事务的传播行为(7个)

6.事务配置


1.Spring事务

在数据层或业务层保障一系列的数据库操作同成功同失败。

2.事务的特点(ACID)

原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全                                        部完成,要么完全不起作用。
一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处                                          于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被                                            破坏。
隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔                                     离开来,防止数据损坏。
持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这                                        样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久                                        化存储器中。

3.事务操作

1)事务添加到Service层接口

2)在Spring进行事务管理操作,有两种方式:编程式事务管理和声明式事务管理

3)声明式事务管理:(1)基于注解方式(2)基于 xml 配置文件方式

4)在Spring进行声明式事务管理,底层使用 AOP 原理

5)Spring事务管理 API

4.操作实例

【第一步】在业务层接口上添加Spring事务管理

@Transactional
public interface BookService {

【第二步】设置事务管理器(将事务管理器添加到IOC容器中)

 【第三步】开启注解式事务驱动

5.事务的传播行为(7个)


(1)REQUIRED(默认):指定的方法必须在事务内执行。若当前存在事务,就加入当前事务中;若当前没有事务,则创建一个新事务。这种创博行为时最常见的选择,
(2)REQUIRES_NEW:总是新建一个事务,若当前存在事务,就将当前事务挂起,知道新事物执行完毕。
(3)SUPPORTS:指定方法支持当前事务,但若当前没有事务,也可以以非事务的方式执行。
(4)MANDATORY
(5)NESTED
(6)NEVER
(7)NOT_SUPPORTED
 

6.事务配置

 上面这些属性都可以在@Transactional注解的参数上进行设置。

readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true。

timeout:设置超时时间单位秒,在多长时间之内事务没有提交成功就自动回滚,-1表示不设置超时时间。

rollbackFor:当出现指定异常进行事务回滚

noRollbackFor:当出现指定异常不进行事务回滚
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值