直接在service 层的方法上加上@Transactional 注解就ok。

注意事项:

1、Spring 基于注解的声明式事物 @Transactional 默认情况下只会对运行期异常(java.lang.RuntimeException及其子类)和 Error 进行回滚。

2、数据库引擎要支持事物,使用InnoDB。

3、@Transactional 只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能.

4、看到网上好多人说要在启动类(配置类)上加  @EnableTransactionManagement 来开启事务支持。

经过测试并不需要。

spring aop  异常捕获原理:

被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获 RuntimeException 的异常,但可以通过配置来捕获特定的异常并回滚

换句话说在service的方法中不使用try catch 或者在catch中最后加上throw new runtimeexcetpion(),这样程序异常时才能被aop捕获进而回滚

想要不向上抛异常,也就是在service就捕获异常,而且注解还生效的方法:

在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常

springboot禁止使用事务_springboot 中使用事务相关推荐

  1. springboot 调用方法事物_springboot中使用@Transactional注解事物不生效的坑

    一:在springboot中使用事物遇到的坑 1.我们知道spring中的事物分为两种:一种是编程式事物,一种是声明式事物.顾名思义,编程式事物是指通过代码去实现事物管理,这里不做过多说明.另一种是声 ...

  2. mysql中的事务_mysql中的事务,你理解嘛?

    事务又叫做TCL,全称是transaction control language,意思是事务控制语言.这篇文章还是属于我的mysql基础文章,在前面我们介绍了下面这些基础知识: 1.数据库的增查改删操 ...

  3. java中如何开启事务_Java中开启事务操做数据库

    1.事务的四大特性(ACID)html 一.原子性(atomicity):组成事务的语句造成了一个逻辑单元,不能只执行一部分:数据库 二.一致性(consistency):在事务处理执行先后,数据库与 ...

  4. mysql不同连接的事务_mysql中不同事务隔离级别下数据的显示效果--转载

    事务是一组原子性的SQL查询语句,也可以被看做一个工作单元.如果数据库引擎能够成功地对数据库应用所有的查询语句,它就会执行所有查询,如果任何一条查询语句因为崩溃或其他原因而无法执行,那么所有的语句就都 ...

  5. ef mysql 事务_EF中使用事务 - 李超明的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.EF中的默认的事务 默认情况下,当我们执行一个SaveChanges()方法时就会新建了一个事务,然后将context中的CUD操作都在这个事务中进行.Context中有多个SaveChanges ...

  6. Spring声明式事务管理中的事务回滚

    一:使用 本文在spring + spring mvc + mybatis中使用 第一步配置xml:注意xml最前面tx名称空间一定要配置 <beans xmlns="http://w ...

  7. springboot 按钮权限验证_SpringBoot中实现Shiro控制ThymeLeaf界面按钮级权限控制

    需求简述 在业绩核算系统中,我们使用了SpringBoot作为项目的整体架构,使用ThymeLeaf作为前端界面框架,使用Shiro作为我们的权限控制框架,Shiro作为轻量级的权限框架,使用起来非常 ...

  8. tp中怎么执行mysql事务_tp中使用事务

    是什么 事务是为了防止,多个操作,其中有失败,数据有部分被执行成功的时候使用的. 比如,银行,用户转账.张三钱扣了,结果李四钱还增加! 这个时候需要使用事务,确保张三钱扣了,李四的钱也增加,才真正的成 ...

  9. springboot指定属性返回_SpringBoot中必须掌握的45个注解

     2020年最新的常问企业面试题大全以及答案 1.SpringBoot/spring @SpringBootApplication: 包含@Configuration.@EnableAutoConfi ...

  10. springboot拦截请求路径_SpringBoot中的拦截机制

    SpringBoot的拦截机制实现不是其特有的,它和Spring中一致,都可以使用下面三种技术来实现拦截机制过滤器(Filter) 拦截器(Interceptor) 切片(Aspect) 过滤器拦截 ...

最新文章

  1. 如何在TVM上集成Codegen(上)
  2. 高并发下秒杀商品,你必须知道的9个细节
  3. 全长转录组测序在植物中的应用研究进展 赵陆滟,曹绍玉,龙云树,张应华,许俊强
  4. Hinton:我终于想明白大脑怎么工作了!神经学家花三十年,寻找反向传播的生物机制...
  5. 使用JavaScript实现一个简单的编译器
  6. php实现电话拨打,jquery mobile实现拨打电话功能的几种方法_jquery
  7. clickhouse hadoop_大数据分析之解决Hadoop的短板,实时大数据分析引擎ClickHouse解析...
  8. php 3d animation,如何用HTML5的Canvas制作3D动画效果
  9. 如何用sql语言只获得数据库当前日期,且格式为yyyy-mm-dd?
  10. java excel 取消科学计数法_java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式...
  11. python 蒙特卡罗_python实现蒙特卡罗方法(代码示例)
  12. Trained Ternary Quantization
  13. ffmpeg js转换音频_微信FFMPEG 扩展转换音频格式
  14. 单片机_MFRC522射频模块使用方法(含代码)
  15. 以太坊 POA 部署
  16. window+deepin双系统安装
  17. 【计算机毕业设计】图书馆借阅管理系统
  18. java 教师工资管理系统_java教师工资管理系统完整代码.doc
  19. 微信小程序第三方平台提交时,出现errcode: 85085,errmsg: submit audit reach limit, please try later hint的解决办法
  20. 用口诀背单词 - 11

热门文章

  1. 在没有上传服务器端的情况下看到上传图片的效果图window.createObjectURL
  2. 当调用wcf, 小心返回值包含enum越界的错误。
  3. 从中报危机看创业板:谁在兜售“上市经济”?
  4. SQL Server 2000 Service Pack 4 升级指南
  5. elasticsearch删除索引
  6. [转]虚函数实现原理
  7. 春节咋过?韩上班族平均休4天 计划花费2756元人民币
  8. day20: zip压缩工具及打包工具介绍
  9. 好用的 curl 抓取 页面的封装函数
  10. OpenVAS安装说明