注释事务的使用!!

注释事务的使用!!

首先得在applicationContext.xml文件配置一下

<!-- 对dataSource 数据源进行事务管理 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
          p:dataSource-ref="dataSource"/>
<!--注解式事务配置(这个注解就是 你哪些方法需要事务你就在那个方法上写一个@Transactional 这个标记)-->

    <!-- 启用对事务注解的支持,自动扫描-->
    <tx:annotation-driven transaction-manager="transactionManager"/>

使用注释事务的时候需要家此注释

@Transactional(propagation = Propagation.REQUIRED,readOnly = false,rollbackFor = Exception.class)```


  • Spring中propagation的7种事务配置

一、在声明式的事务处理中,要配置一个切面,其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默认是REQUIRED。

二、Spring中七种Propagation类的事务属性详解:

REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。
REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED:支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务。

三、注意.
这个配置将影响数据存储,必须根据情况选择。


readOnly = true 表示所注释的方法或类只是读取数据。
readOnly = false 表示所注释的方法或类是增加,删除,修改数据。


在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方

法抛出异常,就会回滚,数据库里面的数据也会回滚。

这种设置是因为Spring的默认回滚RuntimeException,如果想要回滚Exception时,要设置@Transactional(rollbackFor = Exception.class),而且Exception还要抛出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值