spring学习笔记十二

本文深入探讨了事务在项目开发中的重要性,特别是数据完整性和一致性方面的作用。详细讲解了Spring框架下声明式事务的配置与使用,包括开启事务管理、配置事务通知及AOP切入,确保业务操作的原子性、一致性、隔离性和持久性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明式事物

1、回顾事务

  • 把一组业务当成一个业务来做,要么都成功,要么都失败
  • 事务在项目开发中,十分重要,涉及到数据完整性的问题
  • 可以确保数据完整性和一致性

事务ACID原则:

  • 原子性:确保都成功或都失败
  • 一致性:数据要么一起提交,要么一起失败
  • 隔离性:多个事务操作一个资源时,是相互隔离的,防止数据损坏
  • 持久性:事务一旦提交,无论系统是否出现问题,数据都会被持久化的存储到存储器中

2、Spring中的事物管理

  • 声明式事物:使用AOP
  • 编程式事物:需要在代码中,进行事务的管理

3、为什么需要事务?

  • 如果不配置事务,可能存在数据提交不一致的情况
  • 如果我们不在Spring去配置声明式事务,我们就需要手动配置事务
  • 事务在项目的开发中非常重要,涉及到数据的完整性和一致性的问题

4、步骤

  1. 开启声明式事务管理

    <!--    开启事务管理-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="datasource"/>
        </bean>
    
  2. 进行事务的配置

    <!--    结合AOP实现事务的织入-->
    <!--    配置事务通知-->
        <tx:advice id="txAdvise" transaction-manager="transactionManager">
    <!--        设置给那些方法配置事务propagation="REQUIRED" 这个传播特性是默认的-->
            <tx:attributes>
                <tx:method name="add" propagation="REQUIRED"/>
                <tx:method name="delete"/>
                <tx:method name="update"/>
                <tx:method name="query" read-only="true"/>
                <tx:method name="*"/>
            </tx:attributes>
        </tx:advice>
    
  3. 进行aop切入

    <!--    配置事务切入
            路径下的所有类的所有方法都切入了事务-->
        <aop:config>
            <aop:pointcut id="pointcut" expression="execution(* com.yu.mapper.*.*(..))"/>
            <aop:advisor advice-ref="txAdvise" pointcut-ref="pointcut"/>
        </aop:config>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值