• 【转】spring 事物通过<tx 标签配置


    解释一下execution(* com.hisun.mvc.service.*.*(..))"中几个通配符的含义:

    第一个 * —— 通配 任意返回值类型
    第二个 * —— 通配 包com.hisun.mvc.service下的任意class
    第三个 * —— 通配 包com.hisun.mvc.service下的任意class的任意方法
    第四个 .. —— 通配 方法可以有0个或多个参数

    综上:包com.hisun.mvc.service下的任意class的具有任意返回值类型、任意数目参数和任意名称的方法

    <tx:advice/> 有关的设置

    这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置。默认的 <tx:advice/> 设置如下:

    • 事务传播设置是 REQUIRED

    • 隔离级别是 DEFAULT

    • 事务是 读/写

    • 事务超时默认是依赖于事务系统的,或者事务超时没有被支持。

    • 任何 RuntimeException 将触发事务回滚,但是任何 checked Exception 将不触发事务回滚

    这些默认的设置当然也是可以被改变的。 <tx:advice/> 和 <tx:attributes/> 标签里的 <tx:method/> 各种属性设置总结如下:

    属性 是否需要? 默认值 描述
    name  

    与事务属性关联的方法名。通配符(*)可以用来指定一批关联到相同的事务属性的方法。 如:'get*''handle*''on*Event'等等。

    propagation REQUIRED 事务传播行为
    isolation DEFAULT 事务隔离级别
    timeout -1 事务超时的时间(以秒为单位)
    read-only false 事务是否只读?
    rollback-for  

    将被触发进行回滚的 Exception(s);以逗号分开。 如:'com.foo.MyBusinessException,ServletException'

    no-rollback-for  

     被触发进行回滚的 Exception(s);以逗号分开。 如:'com.foo.MyBusinessException

  • 相关阅读:
    shell
    RANDOM随机数
    docker网络管理
    Oracle-28001密码过期问题及28000账户被锁解决
    Oracle数据泵导入导出(expdb/impdb)
    mysql多实例部署
    sed命令基本使用
    MySQL5.7.x二进制安装
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/flord/p/5848579.html
Copyright © 2020-2023  润新知