跳转至

声明式事务

  • 编程式的实现方式缺陷:
    • 细节没有被屏蔽:具体操作过程中,所有细节都需要程序员自己完成
    • 代码复用性不高:每次实现功能都需要自己编写代码
  • 声明式事务:利用框架将固定模式的代码抽取出来,进行封装
    • 封装后,我们只需要在配置文件中进行简单的配置
  • 优点:
    • 提高开发效率
    • 消除冗余代码
    • 框架会综合考虑相关领域在实际开发环境中可能遇到的问题,进行了健壮性、性能等各个方面的优化

基于注解的声明式事务

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

    因为service层表示业务逻辑层,一个方法表示一个完成的功能,因此处理事务一般在sercive层处理

  • @Transactional注解标识的位置:
    • 标识在方法上:只影响该方法
    • 标识在类上:影响类中的所有方法
  • @Transactional的属性:
    • readOnly:设置只读
      • 一般用在查询
    • timeout:设置超时时间,超出时间后强制进行回滚和事务处理
    • 设置回滚策略