zoukankan      html  css  js  c++  java
  • spring事务配置

    工作中不一定是每执行一条sql语句就进行提交,有可能是一批业务的操作,这一批sql语句,要么全部执行成功,要么全部执行失败。因此就需要用到事务来进行管理。

    在spring中,提供了对事务的管理类。

    首先需要在beans的配置文件上添加tx的命名空间和地址

    xmlns:tx="http://www.springframework.org/schema/tx"
    
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-4.3.xsd

    同时配置进行事务管理的数据源

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

    以上配置完成后,即可在程序的数据持久层进行事务管理。

    在想要进行事务控制的类或public方法上使用注解@Transactional

        @Override
        @Transactional
        public void insert(List<TPjXjypsq> list) {
            //TODO
        }

    如上,如果一个类中,类和方法都使用了该注解,以方法上的注解为优先。如果方法的修饰词不是public,虽然不会报错,但事务不会被管理。

    @Transactional中的属性

    propagation:可选的传播性设置,参数为枚举

    isolation:可选的隔离性设置,参数为枚举

    readOnly:可读性,参数为boolean

    timeout:超时时间,以s为单位,参数为int类型

    rollbackFor:遇见指定的异常则回滚,参数是class类型,且必须为Throwable子类,可以是一个参数rollbackFor=Exception.class或多个rollbackFor={a.class,b.class}。

    rollbackForClassname:遇见指定的异常的名称则回滚,参数是String,但必须是Throwable子类的名称。可以是一个参数或多个。

    noRollbackFor:遇见指定的异常则必须不回滚,参数同rollbackFor。

    noRollbackForClassname:遇见指定的异常的名称则必须不回滚,参数同rollbackForClassname。

    由于以上方式需要对每个进行事务管理的地方都增加注解@Transactional,因此可以使用aop配合,对多个类(方法)进行事务管理。

    注意事项

    1、@Transactional默认抛出异常为runableException类及下面子类,如果所抛出的类不属于该范围,例如抛出Exception类型的异常,则不会触发事务回滚。

    2、@Transactional只对public类型有效,其他类型虽然不会报错,但是均无效。

    3、@Transactional只对方法中抛出的异常触发回滚,如果异常在方法中已经被捕获和处理,则不会触发回滚。

  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/yxth/p/8489867.html
Copyright © 2011-2022 走看看