检测Spring 事务是否处于活动状态

1.介绍

检测事务对于审计目的或处理未实现良好事务约定的复杂代码库可能很有用。

2.事务配置

为了使事务在 Spring 中工作,必须启用事务管理。 如果使用具有 spring-data-* 或 spring-tx 依赖项的 Spring Boot 项目,Spring 将默认启用事务管理。 否则,必须启用事务并显式提供事务管理器。

首先,需要在@Configuration 类中添加@EnableTransactionManagement 注解。 为项目启用Spring 的注解驱动事务管理。

接下来,必须提供 PlatformTransactionManager 或 ReactiveTransactionManager bean。 这个 bean 需要一个数据源。 以选择使用一些常见的库,例如 H2 或 MySQL 的库。

3.使用TransactionSynchronizationManager

Spring 提供了一个名为 TransactionSynchronizationManager 的类。这个类有一个静态方法,可以知道是否处于事务中,称为 isActualTransactionActive()。

单元测试

添加了@Transactional注解,返回true

@Test
@Transactional
public void test1() {
    assertTrue(TransactionSynchronizationManager.isActualTransactionActive());
}

当删除 @Transactional 注解时,返回 false:

@Test
public void test2() {
    assertFalse(TransactionSynchronizationManager.isActualTransactionActive());
}
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值