设为首页 加入收藏

TOP

学习笔记——Spring声明式事务管理;Spring中支持事务管理;使用声明式事务管理;Spring声明式事务管理属性
2023-07-25 21:42:27 】 浏览:28
Tags:习笔记 Spring 明式事 管理 支持事 管理属

2023-01-18

一、Spring声明式事务管理

1、事务四大特征(ACID)

(1)原子性

(2)一致性

(3)隔离性

(4)持久性

2、事务三种行为

(1)开启事务:connection.setAutoCommit(False)

(2)提交事务:connection.commit()

(3)回滚事务:connection.rollback()

二、Spring中支持事务管理

1、编程式事务管理

(1)获取数据库连接Connection对象

(2)取消事务的自动提交(开启事务)

(3)执行操作

(4)正常完成操作时手动提交事务

(5)执行失败时回滚事务

(6)关闭相关资源

2、声明式事务管理(使用AOP管理事务)

先横向提取(事务管理代码),再动态织入

 三、使用声明式事务管理

注:如果不使用事务管理代码,会出现以下情况:

同一个业务中,会出现局部成功及局部失败的现象(不正常)。

1、基本使用步骤

(1)添加支持jar包

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.3.10</version>
        </dependency>

(2)编写配置文件

①配置事务管理器

②开启事务注解支持

<!--    配置事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
<!--    开启事务注解支持-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

(3)在需要事务管理的业务方法上添加注解@Transational

注:添加声明式事务管理之后,获取是代理对象,代理对象不能转换为目标对象(实现类)

四、Spring声明式事务管理属性

1、事务传播行为(Propagation)

当事务方法被另一个事务方法调用时,必须指定事务应该如何传播

如:执行事务方法method()1(事务x)之后,调用事务方法method2()(事务y),此时需要设置method()2方法的事务传播行为。

(1)事务的传播行为

①REQUIRED:如果有事务在运行,当前的方法就在这个事务内运行;否则就启动一个新的事务,并在自己的事务内运行

②REQUIRED_NEW:当前的方法必须启动新事务,并在自己的事务内运行;如果有事务正在运行,应该将它挂起。

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇day05-Spring管理Bean-IOC-03 下一篇java-数组相关的算法(尚硅谷)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目