zoukankan      html  css  js  c++  java
  • Java开发中使用事务

    一、      XML,使用tx标签配置拦截器实现事务

    二、      Annotation方式

    一、XML,使用tx标签配置拦截器实现事务

    中主要配置中是tx:advice和aop:config两个配置节,以Spring AOP的方式实现事务管理。

    tx:advice配置了事务的管理者是transactionManager,同时tx:method也规定了如果方法名匹配“add*”和“get*”方法时使用事务,propagation是设定事务的传播级别。除了“add*”和“get*”方法,其他的方法的事务是只读的(典型地,对于只执行查询的事务你会将该属性设为true,如果出现了更新、插入或是删除语句时只读事务就会失败)

    aop:config指定了一个aop:pointcut去引用上边的advice。

    这样就通过AOP的拦截机制实现了事务,方法上面就不用@Transactional了

    二、Annotation方式

    将配置文件中

    <!-- 通知 -->
    <!-- <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
    &lt;!&ndash; 传播行为 &ndash;&gt;
    <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/>
    <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
    <tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
    <tx:method name="create*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
    <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
    <tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
    <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
    <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
    <tx:method name="select*" propagation="SUPPORTS" read-only="true" />
    <tx:method name="query*" propagation="SUPPORTS" read-only="true" />
    </tx:attributes>
    </tx:advice>
    &lt;!&ndash; 切面 &ndash;&gt;
    <aop:config>
    <aop:pointcut id="transactionPointcut" expression="execution(* com.xwg.service.*.*(..))" />
    <aop:advisor pointcut-ref="transactionPointcut" advice-ref="txAdvice" />
    </aop:config> -->

    这部分注释掉,然后方法上面加@Transactional注解就可以了,

    如果在类上面加这个注解,说明这个类下面所有的方法都启用事务

  • 相关阅读:
    HDU3718 Similarity 最大权值匹配
    HDU2853 Assignment 最大权值匹配+简直是太神了
    HDU3488 Tour 再次感受到KM的强大
    ZOJ2575 Full of Painting 动态规划
    ZOJ2571 Big String Outspread 模拟
    POJ3565 Ants 空间点对不相交匹配最小权值匹配
    Fleury(弗罗莱)算法求欧拉路径
    HDU2426 Interesting Housing Problem 最大权值匹配不能完成匹配的处理
    POJ1392 Ouroboros Snake 欧拉回路
    HDU2255 奔小康赚大钱 最大权值匹配
  • 原文地址:https://www.cnblogs.com/xwgcxk/p/9218110.html
Copyright © 2011-2022 走看看