Spring的第十五阶段:Spring的事务管理(02)

这篇具有很好参考价值的文章主要介绍了Spring的第十五阶段:Spring的事务管理(02)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、自定义设置回滚异常

rollbackFor和rollbackForClassName回滚的异常

/**
 * @Transactional 表示使用通知( 启用事务 ) <br/>
 * rollbackFor 属性可以自定义哪些异常可以回滚事务 <br/>
 * rollbackForClassName 属性可以自定义哪些全类名的异常回滚事务 <br/>
 */
@Transactional(rollbackForClassName = "java.io.FileNotFoundException")
public void multiUpdate() throws Exception {
    bookDao.updateBook();
    int i = 12;
    if (i == 12) {
        throw new FileNotFoundException();
    }
    userDao.updateUser();
}

2、事务的只读属性

insert , update , delete 语句是写操作
select 是读操作
只读,就是只允许用户查询数据 , 不允许用户修改数据.

测试readOnly只读属性

/**
 * @Transactional 表示使用通知( 启用事务 ) <br/>
 *
 * readOnly 它可以设置当前方法是否允许写操作 <br/>
 *  默认是允许的.所以它的默认值是false. <br/>
 *  如果设置readOnly = true就不允许执行写操作的sql语句.
 */
@Transactional(readOnly = true)
public void multiUpdate() throws Exception {
    bookDao.updateBook();
    userDao.updateUser();
}

Spring的第十五阶段:Spring的事务管理(02)

3、事务超时属性timeout (秒为单位)

/**
 * @Transactional 表示使用通知( 启用事务 ) <br/>
 *
 *  timeout属性可以设置多少秒内不再允许执行sql语句( 在指定秒数内要完成事务 ) <br/>
 *  timeout = 3 表示3秒后不允许执行sql语句,否则就是操作超时 <br/>
 */
@Transactional(timeout = 3)
public void multiUpdate() throws Exception {
    bookDao.updateBook();
    Thread.sleep(5000);
    userDao.updateUser();
}

超时的异常信息:

Spring的第十五阶段:Spring的事务管理(02)

4、事务的传播特性propagation

什么是事务的传播特性 ( 传播行为 ):

当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。
事务的传播行为可以由传播属性指定。Spring定义了7种类传播行为。

事务的传播特性,有以下几种类型:
Spring的第十五阶段:Spring的事务管理(02)

5、注解演示事物传播特性

UserService
BookService
TransactionService

大小事务传播特性都是REQUIRED

	@Transactional(propagation = Propagation.REQUIRED)
	public void multiTransaction() {
	@Transactional(propagation = Propagation.REQUIRED)
	public void updateBook() {
	@Transactional(propagation=Propagation.REQUIRED)
	public void updateUser() { }

Spring的第十五阶段:Spring的事务管理(02)

大小事务传播特性都是REQUIRES_NEW

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void multiTransaction()
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void updateBook()
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void updateUser()

Spring的第十五阶段:Spring的事务管理(02)

大事务是REQUIRED,小1REQUIRED,小2REQUIRES_NEW

@Transactional(propagation = Propagation.REQUIRED)
public void multiTransaction()
@Transactional(propagation = Propagation.REQUIRED)
public void updateBook()
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void updateUser()

Spring的第十五阶段:Spring的事务管理(02)文章来源地址https://www.toymoban.com/news/detail-443645.html

到了这里,关于Spring的第十五阶段:Spring的事务管理(02)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring 事务管理

    目录 1. 事务管理 1.1. Spring框架的事务支持模型的优势 1.1.1. 全局事务 1.1.2. 本地事务 1.1.3. Spring框架的一致化编程模型 1.2. 了解Spring框架的事务抽象(Transaction Abstraction) 1.2.1. Hibernate 事务设置 1.3. 用事务同步资源 1.3.1. 高级同步方式 1.3.2. 低级同步方式 1.3.3.TransactionAwareDataSo

    2024年02月13日
    浏览(45)
  • Spring的事务管理

    1、事务的回顾 【1】事务的定义 是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合 【2】事务的ACID原则 事务具有4个基本特性:原子性、一致性

    2023年04月16日
    浏览(74)
  • Spring之事务管理

    事务是数据库操作最基本单位,要么都成功,要么都失败。 原子性 一致性 隔离性 持久性。 Spring定义了7种传播行为: 传播属性 描述 REQUIRED 如果有事务在运行,当前的方法就在这个事务内运行,否则,就启动一个新的事务,并在自己的事务内运行 REQUIRED_NEW 当前的方法必须

    2024年02月13日
    浏览(66)
  • Spring使用@Transactional 管理事务,Java事务详解。

    B站视频:https://www.bilibili.com/video/BV1eV411u7cg 技术文档:https://d9bp4nr5ye.feishu.cn/wiki/HX50wdHFyiFoLrkfEAAcTBdinvh 简单来说事务就是一组对数据库的操作 要么都成功,要么都失败。 事务要保证可靠性,必须具备四个特性:ACID。 A:原子性:事务是一个原子操作单元,要么完全执行,要么

    2024年02月11日
    浏览(29)
  • 【掌握Spring事务管理】深入理解事务传播机制的秘密

    🎉🎉🎉 点进来你就是我的人了 博主主页: 🙈🙈🙈 戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔 🤺🤺🤺 目录 1.Spring 中事务的实现方式 1.1 Spring 编程式事务 (了解) 1.2 Spring 声明式事务 ( @Transactional ) 【异常情况一】(自动回滚成功) 【异常情况二】(自动回滚失效

    2024年02月10日
    浏览(46)
  • Spring中的事务管理

    概念 事务 是一组操作的集合,它是一个不可分割的工作单位,这些操作要么 同时成功 ,要么 同时失败 。 操作 开启事务(一组操作 开始前 ,开启事务) : start transaction / begin ; 提交事务(这组操作 全部成功后 ,提交事务) : commit ; 回滚事务(中间任何一个操作 出现异常 ,

    2024年02月12日
    浏览(34)
  • 【Spring教程21】Spring框架实战:Spring事务简介、AOP事务管理、代码示例全面详解

    欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《AOP(面对切面编程)知识总结》 事务作用:在数据层保障一系列的数据库

    2024年02月04日
    浏览(44)
  • Spring的第十二阶段(01):Spring实现AOP的简单使用

    需要导入工程的jar包 Spring的核心包 @PointCut切入点表达式语法格式是: execution(访问权限 返回值类型 方法全限定名(参数类型列表)) 在Spring中,可以对有接口的对象和无接口的对象分别进行代理。在使用上有些细微的差别。 如果被代理的对象实现了接口。在获取对象的时候,

    2024年02月03日
    浏览(40)
  • 【Spring篇】AOP事务管理

    🍓系列专栏:Spring系列专栏 🍉个人主页:个人主页 1.Spring事务简介 1.相关概念介绍 事务作用:在数据层保障一系列的数据库操作同成功同失败 Spring事务作用:在数据层或 业务层 保障一系列的数据库操作同成功同失败 数据层有事务我们可以理解,为什么业务层也需要处理事务

    2024年02月06日
    浏览(42)
  • Spring 事务管理详解及使用

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:SSM 框架从入门到精通 ✨特色专栏:国学周更-心性养成之路 🥭本文内容:一文吃透 Spring 中

    2024年01月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包