Spring事务注解@Transactional

本文介绍了Spring注解事务的使用,强调了事务生效的条件,即方法抛出的异常需被事务管理的方法捕获才会导致事务回滚。通过打印事务名称来排查事务未生效的问题。示例中展示了如何通过@Transactional注解控制事务边界,包括在同一事务内和开启新事务的情况,并提醒注意方法调用方式对事务生效的影响。
摘要由CSDN通过智能技术生成

Spring注解事务

String txName = TransactionSynchronizationManager.getCurrentTransactionName();获取当前事务名

事务需要注意方法是哪个事务在管理,哪个方法抛出异常对应的事务才会回滚,可以通过打印出事务名称来排查事务不生效的场景
例如下面的事务的save方法的事务管理

@Slf4j
@Service
public class TransactionServiceImpl implements TransactionService {
   

    @Autowired
    private BasecodeRepository basecodeRepository;

    @Autowired
    private ProjectService projectService;

    @Override
    @Transactional(propagation = Propagation.REQUIRED)
    public void save() {
   
        TransactionService transactionService = SpringBeanContextHolder.getBean(TransactionService.class);
        saveProject();
        try {
   
            saveWithTransactionPrivate();
        } catch (Exception e){
   
            log.info("save error",e);
        }
        // 注意这一行
        int i =  2/0;
    }
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值