`
zhouchaofei2010
  • 浏览: 1106753 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring事物传播测试表

阅读更多

spring事物传播测试表:页面显示不全,请下载附件查看

 

A未否开启事务 B声明传播类型 A是否异常
a1001:是
a1002:否
B是否异常
aa:是
bb:否
A是否要回滚 B是否要回滚 测试结果A是否回滚 测试结果B是否回滚 测试结果 特点总结 备注
PROPAGATION_REQUIRED P 支持当前事务,如果当前没有事务,就新建一个事务 1、A,B分别代表两个不同类中的方法:ServiceA.methodA() 和ServiceB.methodB()

2、这里测试的是spring的声明式事务,所以A,B不能不表示同一个类中的两个方法。在同一个类中的方法调用,被调用的方法的事务声明不起效果,因为同一个类中的的方法直接调用,不会插入Spring中AOP的事务切面

3、测试代码A调用B,需要捕捉B的异常,否则B异常溢出会影响到A
参考代码格式:
ServiceA {
/**
* 事务属性配置为 PROPAGATION_REQUIRED
*/
void methodA() {
try {
ServiceB.methodB(); 
} catch (SomeException) {
// 捕捉methodB的异常
}
}
}

4、A开启事务,这里通过声明@Transactional(value = "transactionManager",propagation=Propagation.REQUIRED),不开启事务,则把声明去掉

5、
PROPAGATION_REQUIRED P
PROPAGATION_REQUIRED P
PROPAGATION_REQUIRED P
PROPAGATION_REQUIRED P
PROPAGATION_REQUIRED P
PROPAGATION_REQUIRED P
PROPAGATION_REQUIRED P
PROPAGATION_SUPPORTS P 支持当前事务,如果当前没有事务,就以非事务方式执行
PROPAGATION_SUPPORTS P
PROPAGATION_SUPPORTS P
PROPAGATION_SUPPORTS P
PROPAGATION_SUPPORTS P
PROPAGATION_SUPPORTS P
PROPAGATION_SUPPORTS P
PROPAGATION_SUPPORTS P
PROPAGATION_MANDATORY Exception Exception Exception Exception P 必须在一个事务中运行。也就是说,他只能被一个父事务调用。否则,他就要抛出异常:No existing transaction found for transaction marked with propagation 'mandatory'
PROPAGATION_MANDATORY Exception Exception Exception Exception P
PROPAGATION_MANDATORY Exception Exception Exception Exception P
PROPAGATION_MANDATORY Exception Exception Exception Exception P
PROPAGATION_MANDATORY P
PROPAGATION_MANDATORY P
PROPAGATION_MANDATORY P
PROPAGATION_MANDATORY P
PROPAGATION_REQUIRES_NEW P 新建事务,如果当前存在事务,把当前事务挂起。(即AB事务各自独立,互不影响)
PROPAGATION_REQUIRES_NEW P
PROPAGATION_REQUIRES_NEW P
PROPAGATION_REQUIRES_NEW P
PROPAGATION_REQUIRES_NEW P
PROPAGATION_REQUIRES_NEW P
PROPAGATION_REQUIRES_NEW P
PROPAGATION_REQUIRES_NEW P
PROPAGATION_NOT_SUPPORTED P 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。(即A事务与B非事务各自独立,互不影响)
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NOT_SUPPORTED P
PROPAGATION_NEVER P 以非事务方式执行,如果当前存在事务,则抛出异常:Existing transaction found for transaction marked with propagation 'never'
PROPAGATION_NEVER P
PROPAGATION_NEVER P
PROPAGATION_NEVER P
PROPAGATION_NEVER Exception Exception Exception Exception P
PROPAGATION_NEVER Exception Exception Exception Exception P
PROPAGATION_NEVER Exception Exception Exception Exception P
PROPAGATION_NEVER Exception Exception Exception Exception P
PROPAGATION_NESTED P 以嵌套方式执行,如果当前存在事务,则嵌套在该父事务中,父事务回滚会导致子事务回滚,反之,子事务回滚不会造成父事务回滚。如果当前不存在事务,则以PROPAGATION_REQUIRED方式执行
PROPAGATION_NESTED P
PROPAGATION_NESTED P
PROPAGATION_NESTED P
PROPAGATION_NESTED P
PROPAGATION_NESTED P
PROPAGATION_NESTED P
PROPAGATION_NESTED P
分享到:
评论

相关推荐

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

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

    spring事务测试

    本文将主要围绕Spring事务测试展开,讲解如何在Spring中进行事务管理和测试。 在Spring框架中,事务管理是通过声明式或编程式的方式来实现的。声明式事务管理通过配置XML或者使用注解来定义事务边界,使得开发者...

    spring hibernate 事务管理学习笔记(一)

    在实际开发中,理解这部分源码有助于我们更深入地掌握Spring事务管理的工作原理。 至于工具,开发者可以使用诸如IntelliJ IDEA这样的IDE,其中集成的调试工具可以帮助我们跟踪代码执行流程,查看事务状态的变化,...

    Spring+Hibernate注解事务实例

    - 在Service层的方法上添加@Transactional注解,指定事务的传播行为(如REQUIRED、REQUIRES_NEW等)和隔离级别。 - 在DAO层,使用Hibernate的Session和Query对象进行数据库操作,Spring会在事务的上下文中管理这些...

    spring mvc+hibernate 实现事务管理(全注解版)

    4. **事务传播行为**: @Transactional注解还支持不同的事务传播行为,如PROPAGATION_REQUIRED(默认,如果当前存在事务则加入,否则新建)、PROPAGATION_REQUIRES_NEW(总是新建事务,如果存在则挂起)等。...

    spring 结合druid和hibernate使用jta配置分布式事务

    5. **配置Spring事务管理器**:创建Atomikos事务管理器的bean,并配置Spring的PlatformTransactionManager,指定使用Atomikos的UserTransaction。 6. **代码实现**:在业务逻辑中,通过Spring的@Transactional注解...

    Spring+iBatis+JOTM实现JTA事务

    - 使用`PlatformTransactionManager`接口配置Spring的声明式事务管理,设置事务传播属性、隔离级别和超时时间。 4. **iBatis配置** - 配置iBatis的SqlSessionFactory,指定数据源和映射文件。 - 编写SQL映射文件...

    Spring Professional Certification Study Guide

    6. **事务管理**:介绍Spring的声明式和编程式事务管理,以及事务传播行为。 7. **Spring Boot**:简述Spring Boot的快速开发特性,如自动配置、起步依赖和Actuator。 8. **测试**:讲解Spring测试框架,包括单元...

    spring核心jar包

    压缩包中的文件名列表没有具体列出,但通常会包括上述组件的相关jar文件,如`spring-context.jar`, `spring-beans.jar`, `spring-aop.jar`, `spring-jdbc.jar`, `spring-orm.jar`, `spring-tx.jar`, `spring-webmvc....

    spring全套jar包

    7. **Spring Context**:ApplicationContext是Spring中的核心容器,负责管理应用的所有bean,并提供了配置、事件传播、国际化等功能。 8. **其他模块**:Spring还提供了其他模块,如Spring Test用于单元测试和集成...

    Java Spring学习路线.pdf

    Spring框架不仅提供了依赖注入的功能来促进松耦合,还提供了声明式事务管理、事件传播等特性。学习Spring框架可以帮助开发者构建高效、可测试和可管理的代码。 #### Spring框架版本 Spring经历了多个版本的迭代,每...

    Spring教程  主要内容:介绍Spring的历史,Spring的概论和它的体系结构,重点阐述它在J2EE中扮演的角色。

    Spring的声明式事务管理允许开发者通过注解或XML配置来声明事务边界,无需编写事务管理代码。这种方式降低了事务管理的复杂性,提高了代码的可读性。 15. Spring对其它企业应用支持 Spring还支持其他企业服务,如...

    spring3.2整套jar包

    6. **spring-test-3.2.11.RELEASE.jar**:这个模块支持Spring应用的单元测试和集成测试,提供了JUnit和TestNG的集成,使得测试更加方便。 7. **spring-aop-3.2.11.RELEASE.jar**:Spring的面向切面编程模块,允许在...

    Spring.3.x企业应用开发实战(完整版).part2

    10.3.1 Spring事务传播机制回顾 10.3.2 相互嵌套的服务方法 10.4 多线程的困惑 10.4.1 Spring通过单实例化Bean简化多线程问题 10.4.2 启动独立线程调用事务方法 10.5 联合军种作战的混乱 10.5.1 Spring事务管理器的...

    ssh struts+hibernate+spring

    **Spring事务管理** 的配置主要涉及到`TransactionProxyFactoryBean`,它可以创建事务代理,根据指定的事务属性(如`transactionAttributes`)决定事务的传播行为。这些传播行为决定了新事务何时开始、何时结束,...

    spring 所有功能详解

    它支持国际化、事件传播、事务管理和AOP等功能,并且是其他模块(如MVC、JDBC、Hibernate、JDO等)的基础。 - **加载上下文的几种方式**: 1. **通过`import`标签引入其他配置文件**:在`spring-mvc.xml`中使用`...

    Spring中文帮助文档

    9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明...

    Spring API

    9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明...

    Spring体系框架入门.zip

    Spring JDBC通过JdbcTemplate和NamedParameterJdbcTemplate等类,提供了事务管理、结果集映射、异常转换等高级功能,让数据库操作变得更加简单且易于测试。 至于标签"AOP aspect",它涉及到Spring的面向切面编程。...

Global site tag (gtag.js) - Google Analytics