美文网首页
Spring事务基本说明

Spring事务基本说明

作者: LordZhou | 来源:发表于2017-01-10 17:54 被阅读0次

    XML配置文件

    需在配置文件中配置以下内容

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    <tx:annotation-driven  transaction-manager="transactionManager" />  
    

    dataSource是数据源

    JAVA代码

    在代码中使用@Transactional注解即可让某个函数拥有事务的特性。

    @Transactional
    public void xxxx(){
      //do something,such as db operator.
    }
    

    Transactional

    @Transactional中Propagation属性有7个选项可供选择:

    Propagation.MANDATORY
    当前方法必须在已经定义的Transaction中运行,如果没有已定义的Transaction则抛出异常。

    Propagation.NESTED
    如果没有已定义的Transaction,当前方法新开一个Transaction并在该Transaction中运行。如果存在已定义的Transaction,当前方法在嵌套事务(Nested Transaction)中运行 — 嵌套事务中可以定义储存点,因此可以独立于外部的Transaction而进行rollback。

    Propagation.NEVER
    当前方法不应在Transaction中运行,如果存在已经定义的Transaction则抛出异常。

    Propagation.NOT_SUPPORTED
    当前方法不应在Transaction中运行,如果存在已经定义的Transaction,则该Transaction暂停(挂起)直至该方法运行完毕。

    Propagation.REQUIRED 默认值
    当前方法必须在Transaction中运行。如果存在已经定义的Transaction,则该方法在已定义的Transaction中运行;如果不存在已经定义的Transaction,则该方法新开一个Transaction并在其中运行。

    Propagation.REQUIRES_NEW
    当前方法必须在新开的Transaction中运行。如果存在已经定义的Transaction,则该已定义的Transaction暂停直至新开的Transaction执行完毕。

    Propagation.SUPPORTS
    当前方法不需要在Transaction中运行,但如果存在已经定义的Transaction,则该方法也可以在Transaction中正常执行。

    相关文章

      网友评论

          本文标题:Spring事务基本说明

          本文链接:https://www.haomeiwen.com/subject/hazkbttx.html