springboot 事务嵌套问题_SpringBoot2.0中的事务@Transactional

本文详细介绍了SpringBoot2.0中@Transactional事务管理的注意事项,包括加注解的方法修饰符要求、注解位置、导入的@Transactional包选择、AOP实现原理以及事务的传播行为。特别强调了在嵌套事务时Propagation属性的作用,以及try-catch对事务的影响。此外,还提到了MySQL数据库中InnoDB引擎对事务的支持,并提供了相关的JPA配置示例。
摘要由CSDN通过智能技术生成

在SpringBoot2.0中使用使用需要注意的地方。

1. 加@Transactional的方法不能是private和protected修饰,private会直接报编译错误,protected不会报错。但是事务不起作用。

2. @Transactional可以放在Controller下面直接起作用,看到网上好多同学说要放到@Component下面或者@Service下面,经过试验,可以不用放在这两个下面也起作用。

3. @Transactional引入包问题,她有两个包:import javax.transaction.Transactional; 和 import org.springframework.transaction.annotation.Transactional; 这两个都可以用,对比了一下他们两个的方法和属性,发现后面的比前面的强大。建议后后面的。

4. @Transactional采用AOP实现的。

在进行方法调用的时候,发现这个方法有事务注解,AOP首先会检测到,然后用代理类采用反射机制进行调用。

1. 首先调用了CglibAopProxy.intercept()方法。

2. 接下来调用ReflectiveMethodInvocation.proceed()方法,

3. TransactionInterceptor.invoke()

4. TransactionAspectSupport.invokeWithinTransaction()

5. TransactionAspectSupport.createTransactionIfNecessary()

6. AbstractPlatformTransactionManager.getTransacti

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值