声明式事务@Transactional

声明式事务@Transactional失效场景

  • 有异常需要抛出,如果catch异常后没有进行throw那么不会进行事务回滚,因为异常已经被捕获所以对于@Transactional而言方法最终无异常抛出;
    • 方法必须是public修饰符,如果不是public修饰也不会报错,只是注解不会生效(因为动态代理jdk动态代理处理接口不包含非public方法,cglib处理public方法);
    • 通过this调用的方法注解是不生效的,通过this在当前类的内部进行调用不会创建新的代理,因此注解不会生效;
      • springboot通过自动装配的方式提供了事务管理的相关依赖,但是如果我们业务场景复杂并且遇到多数据源场景,那么需要结合实际业务来灵活使用。
      • 使用声明式事务@Transactional的时候,可以通过配置事务管理器(value)和事务传播行为(propagation)的属性来控制满足自己的业务场景。
       
posted @   myWang  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示