java 配置事务回滚_Spring@Transactional事务回滚

java 配置事务回滚_Spring@Transactional事务回滚Spring中事务分为编程时事务和声明式事务,编程式事务:编程人员通过代码控制事务的开启、回滚、提交,声明式事务:把事务的处理交给spring。使用注解@transactional配置就是声明式事务。基本配置在applicationContext.xml配置文件中1//配置spring的DataSourceTransactionManager事务管理器23class=”org…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Spring中事务分为编程时事务和声明式事务,编程式事务:编程人员通过代码控制事务的开启、回滚、提交,声明式事务:把事务的处理交给spring。使用注解@transactional配置就是声明式事务。

基本配置

在applicationContext.xml配置文件中

1 //配置spring的DataSourceTransactionManager事务管理器

2

3 class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>

4 //指向的数据源

5

6 //配置事务注解驱动

7

然后在需要事务管理的地方加@Transactional 注解。

实现事务回滚需要注意的问题:

1.@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。

2.@Transactional 注解只能应用到 public 可见度的方法上。 如果你在 protected、private 或者 package-visible 的方法上使用 @Transactional 注解,它也不会报错,但是这个被注解的方法将不会展示已配置的事务设置。

3.默认情况下,spring会对unchecked异常进行事务回滚;如果是checked异常则不回滚。

如果事务在try{}catch(Exception e){e.printStackTrace();}中跑,并且catch中只是打印e的话,那么事务不会rollback。因为异常被catch掉了,框架不知道发生了常。

如果想要rollback,

(1)注解上面写明异常类型即可,@Transactional(rollbackFor=Exception.class)

(2)在方法上添加 throws Exception,将方法中出现的异常抛出给spring事务

(3)去掉方法体中的try catch

(4)catch (Exception e) { throw e;}继续向上抛,目的是让spring事务捕获这个异常

除了以上注意的问题,说一下最近遇到的关于多数据源配置事务回滚的问题

在项目中关于事务该配置的也配置了,需要注意的问题也注意了,但有的事务可以出现回滚有的回滚失败,最终问题所在: id相同的事务配置分别配置在两个application.xml文件中,如果多个application.xml有配置,在web.xml中后加载的application.xml中的事务配置会覆盖最先加的application.xml中的事务配置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179641.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 汇编语言王爽第四版实验4答案_王爽汇编语言实验11

    汇编语言王爽第四版实验4答案_王爽汇编语言实验11汇编语言王爽第四版课后检测点课后实验持续更新~~实验4[bx]和loop的使用1编程,向内存0:200~0:23f依次传送数据0~63(3fh)assumecs:codecodesegment movax,0 movds,ax;设置ds=0 movbx,200h;设置从200h开始 movcx,64;循环64次 moval,0;传送的数据 s: mov[bx],al incbx incal loops movax,4c00h

    2025年6月21日
    2
  • Android 官方文档:(一)动画和图像 —— 1.5 画布和画图

    Android 官方文档:(一)动画和图像 —— 1.5 画布和画图

    2021年11月13日
    44
  • 38款 流媒体服务器开源软件

    38款 流媒体服务器开源软件Flash流媒体服务器Red5Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流;录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RSTP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash…更多Red5信息最近更新:Red51.0.1

    2022年5月2日
    43
  • 创建xsync 脚本

    创建xsync 脚本1、安装rsync:yum-yinstallrsync2、创建xsync文件并进行编辑(最好放到配置过环境变量的目录下)输入命令:vi/usr/local/spark/spark-standalone/bin/xsync#!/bin/bash#1获取输入参数个数,如果没有参数,直接退出pcount=$#if[$pcount-lt1]thenechoNoEnoughArguement!exit;fi#2.遍历集群所有机器forh…

    2022年5月5日
    42
  • win10开始键没反应解决方法「建议收藏」

    win10开始键没反应解决方法「建议收藏」win10开始键没反应解决方法具体方法如下:1、打开运行窗口。windows7系统:通过“开始”菜单进入。点击“开始”菜单,从打开的菜单中依次点击“所有程序”>“附件”>“运行”来打开“运行”窗口。windows10系统:右击屏幕左下角win标志,在弹出的菜单中找到“运行”,点击进入运行窗口2、在搜索窗口输入“regedit”,打开注册表编辑器。3、在在注册表“HKEY_CLASSES_ROOT”主键下找到“lnkfile”字符串值项。打开它。4、在右侧右击它,会出现一个菜单

    2022年5月4日
    45
  • 吐血整理!java面试中经常被问到的问题「建议收藏」

    吐血整理!java面试中经常被问到的问题「建议收藏」主备同步的实现原理我们先来了解一下主备同步的原理,下面以一个update语句来介绍主库与备库间是如何进行同步的。上图是一个update语句在节点A执行,然后同步到节点B的完整流程图,具体步骤有:主库接受到客户端发送的一条update语句,执行内部事务逻辑,同时写binlog。备库通过changemaster命令,设置主库的IP、端口、用户名和密码,以及要从哪个位置开始请求binlog。这个位置包含文件名和偏移量。在备库上执行startslave命令,启动两个线程io_thread

    2022年7月9日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号