zoukankan      html  css  js  c++  java
  • Spring的事务管理

    Spring事务管理

    说明:

      这里只介绍Spring是如何配置事务,其他的如项目搭建,框架的整合不做介绍。

    声明式事务管理:

      1、基于XML配置文件实现

      2、基于注解实现

    配置方法:

    方法一:基于XML配置文件实现

      步骤一:配置事务管理器

    <!-- 配置事务管理器 -->
    <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

      步骤二:配置事务增强

    <!-- 拦截器方式配置事物 -->
         <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="add*" propagation="REQUIRED"  rollback-for="Java.lang.RuntimeException"/>
                <tx:method name="append*" propagation="REQUIRED" />
                <tx:method name="save*" propagation="REQUIRED" />
                <tx:method name="update*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/>
                <tx:method name="modify*" propagation="REQUIRED" />
                <tx:method name="edit*" propagation="REQUIRED" />
                <tx:method name="insert*" propagation="REQUIRED" rollback-for="Java.lang.RuntimeException"/>
                <tx:method name="del*" propagation="REQUIRED"  rollback-for="Java.lang.RuntimeException"/>
                <tx:method name="remove*" propagation="REQUIRED" />
                <tx:method name="repair*" propagation="REQUIRED" />
                <tx:method name="reset*" propagation="REQUIRED" />
                <tx:method name="getScoreList*" propagation="REQUIRED" />
                <tx:method name="batch*" propagation="REQUIRED"  rollback-for="Java.lang.RuntimeException"/>
                <tx:method name="get*" propagation="REQUIRED" read-only="true" />
                <tx:method name="find*" propagation="REQUIRED" read-only="true" />
                <tx:method name="load*" propagation="REQUIRED" read-only="true" />
                <tx:method name="search*" propagation="REQUIRED" read-only="true" />
                <tx:method name="datagrid*" propagation="REQUIRED" read-only="true" />
                <tx:method name="querySeqNo*" propagation="NOT_SUPPORTED" read-only="true" />
                <tx:method name="*" propagation="REQUIRED" read-only="true" />
            </tx:attributes>
        </tx:advice>

      步骤三:配置切面

    <aop:config>
         <aop:pointcut id="transactionPointcut" expression="execution(* com.service.*.*.*(..))" />
         <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
    </aop:config>

    方法二:基于注解实现

      步骤一:配置事务管理器

    <!-- 配置事务管理器 -->
        <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>

      步骤二:配置事务注解

    <tx:annotation-driven transaction-manager="transactionManager" />

      步骤三:在要使用事务的方法所在类上使用注解

    总结:以上就是Spring事务的两种不同的配置方式,根据需要选择其中一种即可。

  • 相关阅读:
    第三次作业
    第二次作业
    第一次作业
    仪仗队(欧拉函数)
    自己随便做的,没做完就没耐心继续了。呵呵
    从别处见到一位大神的代码 飞扬的小鸟(flappy bird)
    简易迷宫游戏c++
    STL做法 平衡树
    基于百度地图api + AngularJS 的入门地图
    javascript 简易文本编辑器
  • 原文地址:https://www.cnblogs.com/yiyidajiaoya/p/8310474.html
Copyright © 2011-2022 走看看