27.Spring的事务控制

这篇具有很好参考价值的文章主要介绍了27.Spring的事务控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、编程式事务控制相关对象。

(1)事务管理器。

(2)事务定义信息对象(如隔离级别、传播行为)。

(3)事务状态对象。

(4) 知识要点。

二、声明式事务控制—基于xml或注解。

(1)声明式事务控制的定义。 

(2)声明式事务控制——基于xml配置。

(2.1) xml配置—声明式事务控制。

(2.2)事务参数的配置。

 (2.3)知识要点。

(3) 声明式事务控制——基于注解配置。

(3.1)注解配置—声明式事务控制。

(3.2)注解配置的注意事项。

(3.3)知识要点。


一、编程式事务控制相关对象。

(1)事务管理器。

27.Spring的事务控制

(2)事务定义信息对象(如隔离级别、传播行为)。

27.Spring的事务控制

(3)事务状态对象。

27.Spring的事务控制

(4) 知识要点。

27.Spring的事务控制

二、声明式事务控制—基于xml或注解。

(1)声明式事务控制的定义。 

编程式:用代码(调用方法)开启提交事务等。 

声明式:通过配置进行事务控制。

27.Spring的事务控制

(2)声明式事务控制——基于xml配置。

(2.1) xml配置—声明式事务控制。

重点笔记:
1、<tx:advice></tx:advice>只有这个标签出现也是可以的(不需要写子标签)。
2、如果写了<tx:attributes>标签,其下必须至少有一个<tx:method>标签)
<!--配置平台事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--通知 事务的增强-->
    <!--重点:<tx:advice></tx:advice>只有这个标签出现也是可以的(不需要写子标签,如果写了<tx:attributes>标签,其下必须至少有一个<tx:method>标签)-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <!--设置事务的属性信息-->
        <tx:attributes>
            <!--一个方法是一个事务,对不同方法进行属性配置-->
            <tx:method name="transfer" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
            <tx:method name="save" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/>
            <tx:method name="findAll" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="true"/>
            <!--以update开头的方法都符合-->
            <tx:method name="update*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="true"/>
            <tx:method name="*"/><!--*代表任意方法,后面的参数不写则用默认值-->
        </tx:attributes>
    </tx:advice>

    <!--配置事务的aop织入-->
    <aop:config>
        <!--第一种方式-->
        <aop:pointcut id="txPoincut" expression="execution(* service.impl.AccountServiceImpl.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoincut"/>
        <!--第二种方式-->
        <!--<aop:advisor advice-ref="txAdvice" pointcut="execution(* service.impl.AccountServiceImpl.*(..))"/>-->
    </aop:config>

27.Spring的事务控制

(2.2)事务参数的配置。

27.Spring的事务控制

 (2.3)知识要点。

27.Spring的事务控制

(3) 声明式事务控制——基于注解配置。

(3.1)注解配置—声明式事务控制。

重要笔记:

1、为什么注解不需要写切点表达式?

答案:因为这里的不同于AOP的注解,AOP注解在增强方法上,所以需要指定切点表达式。

而事务控制的注解则是配置在切点方法上的,所以不需要写切点表达式 。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!--组件扫描-->
    <context:component-scan base-package="dao"/>
    <context:component-scan base-package="service"/>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/tan"/>
        <property name="user" value="root"/>
        <property name="password" value="tan"/>
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--配置平台事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--事务的注解驱动,即便不加transaction-manager,也可以成功完成事务控制,不知道有跟没有的区别-->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

27.Spring的事务控制

(3.2)注解配置的注意事项。

27.Spring的事务控制

(3.3)知识要点。

27.Spring的事务控制文章来源地址https://www.toymoban.com/news/detail-425369.html

到了这里,关于27.Spring的事务控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot基础之声明式事务和切面事务和编程式事务

    事务管理对于企业应用来说是至关重要的,当出现异常情况时,它也可以保证数据的一致性。 springBoot中两种事务的实现方式, 编程式事务配置和声明式事务配置还有切面事务 还有以后的分布式事务 详情参考 这篇 原子性(Atomicity): 事务是一个原子操作,由一系列动作组成

    2024年02月02日
    浏览(33)
  • 【Spring面试】八、事务相关

    答案: 即ACID: 原子性 ,Atomicity,即事务包含的所有操作要么同成功,要么同失败 一致性 ,Cosistency,即事务必须使得数据库从一个一致性状态到两一个一致性状态。如用户A和用户B两者的钱加起来一共5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相

    2024年02月07日
    浏览(31)
  • Spring事务简介及相关案例

    目录   一、事务简介 二、准备数据库 三、创建maven项目,引入依赖和完成相关配置 1. pom.xml文件 2. 创建配置文件 四、编写Java代码 1. Account实体类 2. AccountDao接口 3. AccountService业务类  五、测试 1. 测试方法 2. 测试结果​编辑 往期专栏文章相关导读  1. Maven系列专栏文章 2. M

    2024年02月08日
    浏览(33)
  • Spring 事务的相关配置、传播行为、隔离级别及注解配置声明式事务

    目录 一、事务的相关配置 1. 添加测试标签 2. 添加对应方法 3. 测试 二、事务的传播行为 三、事务的隔离级别 四、注解配置声明式事务 1. 注册事务注解驱动 2. 加上注解 3. 配置类代替xml文件中的注解事务支持 4. 测试 往期专栏文章相关导读  1. Maven系列专栏文章 2. Mybatis系列专

    2024年02月08日
    浏览(32)
  • Spring事务控制

    目录 1、什么是事务控制 2、编程式事务控制 2.1、简介 2.2、相关对象 2.2.1、PlatformTransactionManager 2.2.2、TransactionDefinition 2.2.2.1、事务隔离级别 2.2.2.2、事务传播行为 2.2.3、TransactionStatus 3、声明式事务控制 3.1、简介 3.2、区别 3.3、⭐作用 3.4、🔺基于xml 3.4.1、引入tx命名空间 3.4

    2024年02月13日
    浏览(25)
  • Spring控制事务回滚

    1、Spring中开启事务的方式主要有两种: 编程式事务和声明式事务 。 2、事务是我们开发过程中经常会使用到的,为了在业务执行过程中出现异常时,回滚到原始状态。而事务的回滚在大多数情况下都是靠着 exception (异常)来触发回滚的,当事务机制捕捉到异常,就会开始回

    2024年02月09日
    浏览(26)
  • Spring——Spring的事务控制(1)基础篇

    1.1.什么是事务? 当你需要一次执行多条SQL语句时,可以使用事务。通俗一点说,如果这几条SQL语句全部执行成功,则才对数据库进行一次更新,如果有一条SQL语句执行失败,则这几条SQL语句全部不进行执行,这个时候需要用到事务。 刘德华《无间道》:去不了终点,回到原

    2024年01月16日
    浏览(27)
  • Spring JDBC和事务控制

    ​ Spring 框架除了提供 IOC 与 AOP 核心功能外,同样提供了基于JDBC 的数据访问功能,使得访问持久层数据更加方便。想要使用 Spring JDBC 环境,需要将JDBC整合到Spring中。 构建项目添加依赖坐标 构建项目:普通的java项目即可 添加 jdbc 配置文件 在src/main/resources目录下新建db.pro

    2024年02月04日
    浏览(20)
  • 【Spring 篇】基于XML的Spring事务控制详解

    Spring框架作为Java开发中的瑞士军刀,提供了许多方便而强大的功能,其中之一就是事务管理。事务是数据库操作中的关键概念,它确保一系列操作要么全部成功,要么全部失败。今天我们将深入探讨基于XML配置的Spring事务控制,以帮助那些初学者更好地理解和应用这一关键功

    2024年01月17日
    浏览(33)
  • Spring 事务管理方案和事务管理器及事务控制的API

    目录 一、事务管理方案 1. 修改业务层代码 2. 测试 二、事务管理器 1. 简介 2. 在配置文件中引入约束 3. 进行事务配置 三、事务控制的API 1. PlatformTransactionManager接口 2. TransactionDefinition接口 3. TransactionStatus接口 往期专栏文章相关导读  1. Maven系列专栏文章 2. Mybatis系列专栏文

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包