必威体育Betway必威体育官网
当前位置:首页 > IT技术

关于Spring注解式事务@Transactional的简单描述

时间:2019-07-17 22:14:24来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

transactional

一、背景:

目前很多项目的事务处理都是利用Spring注解式事务实现的(@transactional)。

  • 在测试事务回滚的过程中发现如下现象:

throw new runtimeexception("xxxxxxxxxxxx"); 事务回滚

throw new Exception("xxxxxxxxxxxx");        事务没有回滚  

二、关于spring事务使用说明:

基于spring aop的事务管理,即声明式事务管理,默认是针对RuntimeException回滚,既默认只对RuntimeException()及其子类进行事务回滚;非运行时类型的异常默认是不会回滚的。

三、依赖事务管理的业务代码中出现异常该如何处理?

三种回滚处理方式:

1、针对该业务代码进行封装,二次抛出RuntimeException类型的异常;

2、利用硬编码的方式,借助spring api对事务进行显式的回滚;

3、在spring配置文件中对rollback-for属性赋值。Tip:该配置也可以直接加在注解上。

<tx:advice id="txAdvice" transaction-manager="transactionManager">
   <tx:attributes>
     <tx:method name="*" rollback-for="com.wangcw.exception.XyzException"/>
   </tx:attributes>
 </tx:advice>

同时,Spring配置文件中也可以声明出不进行回滚的异常。

<tx:advice id="txAdvice">
    <tx:attributes>
       <tx:method name="update*" no-rollback-for="IOException"/>
       <tx:method name="*"/>
    </tx:attributes>
 </tx:advice>

相关阅读

spring默认启动位置以及contextConfigLocation设置源

spring默认启动位置以及contextConfigLocation设置源码解析 这几天在看spring的源码,涉及到spring启动位置的部分,下面就看看sprin

什么是事务的ACID

1)原子性(Atomic):事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败;2)一致性(Consistent):事务结束后系

MySQL 高级(事务+索引+视图+触发器+存储过程)

目录 事务 索引 1.创建索引 2.删除索引 3.查看索引 4.索引准则 视图 触发器 存储过程 1.创建存储过程 2.调用存储过程 3.查看存储

史上最全spring注解,没有之一

注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好。不求我们每

【Spring源码分析】08-DataBinder

DataBinder实现了TypeConverter和PropertyEditorRegistry接口提供了类型转换功能,并且在设置值的同时做Validation。 DataBinder

分享到:

栏目导航

推荐阅读

热门阅读