首页 > 其他分享 >学习笔记——Spring声明式事务管理;Spring中支持事务管理;使用声明式事务管理;Spring声明式事务管理属性

学习笔记——Spring声明式事务管理;Spring中支持事务管理;使用声明式事务管理;Spring声明式事务管理属性

时间:2023-01-18 22:34:42浏览次数:37  
标签:事务管理 事务 声明 connection 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:当前的方法必须启动新事务,并在自己的事务内运行;如果有事务正在运行,应该将它挂起。

 

标签:事务管理,事务,声明,connection,Spring,方法
From: https://www.cnblogs.com/isDaHua/p/17060421.html

相关文章

  • Spring MVC Tiles示例
    Spring提供了与apachetile框架的集成支持。因此,我们可以借助SpringTile支持简单地管理SpringMVC应用程序的布局。SpringMVC支持Tiles的优势SpringMVCTiles示例1、......
  • Spring MVC自定义验证
    SpringMVC框架允许我们执行自定义验证。在这种情况下,我们声明自己的注释。我们可以根据自己的业务逻辑执行验证。SpringMVC自定义验证示例在此示例中,我们同时使用预......
  • Spring MVC编号验证
    在SpringMVC验证中,我们可以在数字范围内验证用户的输入。以下注释用于实现数字验证:@Min注解-必须传递带有@Min批注的整数值。用户输入必须等于或大于此值。@Max注解......
  • Spring MVC验证
    SpringMVC验证用于限制用户提供的输入。为了验证用户的输入,Spring4或更高版本支持并使用Bean验证API。它可以同时验证服务器端和客户端应用程序。 Bean验......
  • Spring MVC正则表达式验证
    SpringMVC验证使我们可以按特定顺序(即正则表达式)验证用户输入。 @Pattern 批注用于实现正则表达式验证。在这里,我们可以为 regexp 属性提供所需的正则表达式,并将其......
  • day05-Spring管理Bean-IOC-03
    Spring管理Bean-IOC-032.基于XML配置bean2.15bean的生命周期bean对象的创建是由JVM完成的,然后执行如下方法:执行构造器执行set相关方法调用bean的初始化方法(需要配置......
  • Spring MVC文件上传示例
    SpringMVC提供了一种上传文件的简便方法,它可以是图像或其他文件。让我们看一个使用SpringMVC上传文件的简单示例。必需的Jar文件要运行此示例,您需要加载:SpringCore......
  • Spring MVC分页示例
    分页用于在不同部分显示大量记录。在这种情况下,我们将在一页中显示10、20或50条记录。对于其余记录,我们提供链接。我们可以在SpringMVC中简单地创建分页示例。在此分......
  • Spring MVC CRUD示例
    CRUD(创建,读取,更新和删除)应用程序是用于创建任何项目的最重要的应用程序。它提供了开发大型项目的想法。在SpringMVC中,我们可以开发一个简单的CRUD应用程序。在这里,我......
  • Spring MVC表单文本字段
    SpringMVC表单文本字段SpringMVC表单文本字段标签使用绑定值生成HTML输入标签。默认情况下,输入标签的类型是文本。语法<form:input path="name" />在这里, path ......