0 0

spring事务传播机制应用场景疑惑?5

这几天做的项目中 涉及到service.methodx的嵌套调用,methodx执行的过程相对不会太短,在做事务配置时产生了一些疑惑,超时时间的设置 事务的拆分等等,让整个方法能够快速完整的执行下去。以下罗列了几个应用场景和事务传播机制的配置,请解答下配置的是否正确?
定义
serviceA {
   methoda();
}
serviceB{
   methodb();
}

场景一、
methoda(){
   for(){
     serviceB.methodb();
   }
}
methoda 传播机制为 supports 未配置超时时间
methodb 传播机制为 requested
这样定义 methodb()是否是独立事务控制,methoda是不在事务控制范围内,在多次循环执行methodb()后 也不会造成methoda超时。

后面陆续再更新有疑惑的场景。
2014年4月29日 14:00

3个答案 按时间排序 按投票排序

0 0

理解事务的传播机制最好的方式是去读一下相关的源代码,其实不多,这里简单总结如下:

1、事务传播机制看似神奇,实际上是使用简单的ThreadLocal的机制实现的,所以如果调用的方法是在新线程调用的,事务传播实际上是会失效的;

2、基于No.1可以想象一下Spring的实现过程:
   进入方法-->AOP执行:当前Thread是否已经设置了事务+当前Method的传播属性来决定做什么事情,比如
      A:当前没有事务+Support --> 不创建事务;
      B:当前没有事务+Required --> 创建事务;
      C:当前有事务 + RequiredNew --> 创建事务等等
 
    将该过程套用到题主的场景就很明了了,如果methoda调用前已经有事务了,那么methodb就不是独立事务的(methoda,methodb,以及调用者在同一个大事务中),否则就是独立事务的(methoda没有事务控制, methodb有事务控制)

3、一些例外:如果methoda和methodb不是同一个数据源(或者用户名不同等都视为不同的数据源),事务也是独立的(这个比较显而易见,两个数据库在不启用JTA的情况下事务是独立的)

2014年5月05日 08:40
0 0

methoda受代理调用,事务生效;methodb不是通过代理调用的,事务不会生效。

2014年5月04日 17:43
0 0

你是不是说一个service 涉及到了多个事务方法的调用这个问题,想要在一个事务报错的时候全部回滚,还是其他的是什么问题?

2014年4月30日 15:42

相关推荐

    Spring事务传播机制.docx

    Spring 事务传播机制 Spring 事务传播机制是指在 Spring 框架中,事务的传播和嵌套机制。...Spring的事务传播机制是非常复杂的,需要根据不同的业务场景选择合适的传播机制,以确保事务的正确执行和回滚。

    spring 事务传播 demo

    总之,“spring 事务传播 demo”将展示如何利用Spring的事务传播特性来处理复杂的业务场景,帮助开发者更好地理解和运用这一强大的工具。通过学习和实践这个示例,你将能够掌握在多层方法调用中如何优雅地管理和协调...

    spring事务的传播特性和事务隔离级别

    Spring提供了七种事务传播特性,每一种都有其特定的场景适用性。 1. **PROPAGATION_REQUIRED** - 这是最常用的传播行为。当使用此传播行为时,如果当前存在事务,则在该事务中执行;如果没有,则创建一个新的事务...

    spring事物隔离和传播机制

    #### 一、Spring 事务传播机制 Spring 的事务管理功能非常强大,其中一个重要特性就是事务传播行为。事务传播行为定义了当一个方法调用另一个方法时,如何处理事务边界的问题。Spring 提供了七种不同的传播行为: ...

    spring 事务传播

    通过上述对Spring事务传播行为的详细介绍,我们可以看出,正确理解和应用这些传播行为对于构建健壮的事务管理机制至关重要。每种传播行为都有其特定的应用场景和限制条件,开发者应根据具体的业务逻辑和需求来合理...

    SPRING事务传播特性&事务隔离级别

    理解和合理应用 Spring 的事务传播特性和事务隔离级别对于开发高质量的企业级应用至关重要。通过选择合适的传播特性和隔离级别,可以有效地控制事务的行为,从而确保数据的一致性和系统的稳定性。开发者应该根据具体...

    深入理解spring的事务管理机制

    通过上述内容,我们可以看出Spring的事务管理机制是基于AOP和底层数据库支持的,它极大地简化了事务处理的复杂度,并提供了灵活的配置选项来满足不同的应用场景需求。开发者可以根据具体的业务需求来选择合适的事务...

    Spring事务传播属性

    Spring事务传播属性是这一机制的关键组成部分,它定义了在一个事务方法被另一个事务方法调用时,应该如何处理事务的边界。在深入理解Spring事务传播属性之前,我们首先需要了解Spring中的事务管理模型,包括编程式...

    spring事务几种传播方式

    ### Spring事务传播方式详解 #### 一、引言 在基于Spring框架开发的应用程序中,事务管理是一项重要的功能。为了确保数据的一致性和完整性,合理地配置事务的传播行为至关重要。Spring提供了多种事务传播行为选项...

    Spring事务的传播特性和隔离级别

    ### Spring事务的传播特性和隔离级别 #### 一、事务的基本概念 在计算机科学中,事务(transaction)是指一系列操作的集合,这些操作要么全部成功完成,要么全部失败回滚,确保数据的一致性和完整性。事务具备四个...

    spring事物传播测试表

    “事务传播测试表”通常用于记录和分析这些行为在不同场景下的表现,以便于开发者理解和选择适合的事务传播策略。通过Excel表格的形式,我们可以列出各种事务方法组合,并观察它们的执行结果,这有助于在实际应用中...

    Spring事务传播原理及数据库事务操作原理.rar

    总的来说,Spring事务传播原理和数据库事务操作原理是Java开发人员必须掌握的核心知识。理解这些原理,能够帮助我们在开发过程中更好地处理数据一致性问题,保证系统的稳定性和可靠性。通过对Spring事务机制的熟练...

    Spring在Transaction事务传播行为种类

    本文将详细介绍Spring框架中定义的七种不同的事务传播行为类型及其应用场景。 #### 二、事务传播行为概述 事务传播行为是指当一个事务方法被另一个事务方法调用时,如何处理这些事务的方法。Spring通过`...

    浅谈Spring事务传播行为实战

    二、Spring事务传播机制: 1. REQUIRED:如果当前事务存在,则加入当前事务,如果当前事务不存在,则创建一个新的事务。 2. REQUIRES_NEW:总是创建一个新的事务,如果当前事务存在,则挂起当前事务。 3. SUPPORTS...

    Spring Boot的Spring事务处理机制4大特性.docx

    通过了解 Spring Boot 中 Spring 事务处理机制的四大特性和相关概念,可以帮助开发者更好地设计和实现应用程序中的事务逻辑。合理设置事务的传播行为和隔离级别,可以有效提高系统的稳定性和可靠性。此外,选择合适...

    spring事务管理机制资料.zip

    在实际应用中,Spring事务管理还可以与其他功能结合使用,如AOP(面向切面编程)和DAO层的事务封装,进一步提高代码的可维护性和可读性。例如,通过AOP切面,可以在方法执行前后自动进行事务的开启和提交。 总的来...

    spring事务案例分析.zip

    本主题将深入探讨“Spring事务案例分析.zip”中的关键知识点,包括Spring事务管理及其在实际项目中的应用。 首先,我们来了解什么是Spring事务管理。在分布式系统或数据库操作中,事务管理是确保数据一致性和完整性...

    spring事务传播

    总之,Spring 的事务传播行为是实现事务管理灵活性的关键,它使得开发者能够精细控制事务的边界和行为,以适应复杂的应用场景。正确理解和使用这些传播模式,对于编写健壮、可靠的事务性应用程序至关重要。

    spring事务-项目案例-PPT解读.zip

    1.业务代码列举7种事务传播机制的情况,每个测试方法都附带日志分析记录、使用场景和实际场景,小白也能看得懂!!! 2.在测试类Test包下,使用juniter进行测试,方便快捷清晰。 ①用到了@BeforeEach,正式执行测试...

    通过实际案例摸清楚Spring事务传播的行为.docx

    通过这样的实际案例分析,我们可以更直观地看到不同事务传播行为在实际应用中的效果,从而加深对Spring事务管理的理解。在实际开发中,根据业务需求正确选择事务传播行为,有助于保证数据的一致性和完整性。

Global site tag (gtag.js) - Google Analytics