• 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注解就可以了,

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

  • 相关阅读:
    字符菱形
    字符三角形
    10:超级玛丽游戏
    09:字符菱形
    08:字符三角形
    07:输出浮点数
    06:空格分隔输出
    05:输出保留12位小数的浮点数
    04:输出保留3位小数的浮点数
    02:输出第二个整数
  • 原文地址:https://www.cnblogs.com/xwgcxk/p/9218110.html
Copyright © 2020-2023  润新知