zoukankan      html  css  js  c++  java
  • Spring事务管理-<tx:advice>标签

    转自:https://www.aliyun.com/jiaocheng/1311989.html

    首先先看一下代码:

     <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
                <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
                <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:attributes>
        </tx:advice>

    需要在< tx:advice >标签内设置id和transaction-manager属性,id为advice bean的标识,transaction-manager则必须引用一个PlatformTransactionManager Bean。

    然后在标签内通过 < tx:attributes >创建通知行为,上述代码通知所开启的事务针对所有的delete、insert……方法。
    默认的< tx:advice >设置如下:

    • 事务传播设置是:REQUIRED
    • 隔离级别是:DEFAULT
    • 事务是:读/写
    • 事务超时默认是依赖于事务系统的,或者事务超时没有被支持。
    • 任何RuntimeException将触发事务回滚,但任何checkedException将不触发事务回滚。

    < tx:method >有关的设置

    属性是否必须默认值描述
    name   与事务属性关联的方法名,通配符*可以用来指定一批关联到相同的事务属性的方法
    propagation REQUIRED 事务传播行为
    isolation DEFAULT 事务隔离级别
    timeout -1 事务超时的时间(以秒为单位)
    read-only false 食物是否只读
    rollback-for   将被触发进行回滚的Exception(s),以逗号隔开。
    no-rollback-for   不被触发进行回滚的Exception(s),以逗号隔开。
  • 相关阅读:
    第六章实验报告
    第三次实验报告
    循环结构课后反思
    分支结构试验
    第七组509寝室课后习题4.34
    c语言实验报告
    第九章 结构体与共用体
    第八章实验报告(指针)
    第7章 数组实验报告
    函数与宏定义实验报告(2)
  • 原文地址:https://www.cnblogs.com/sharpest/p/7723691.html
Copyright © 2011-2022 走看看