springboot @Transactional 和synchronized不能共用

  • springboot 的事物是利用APO实现的,所以加了synchronized,是在事物内加了同步,所以需要在controller里面加synchronized就可以了
  • 如果是在service里加方法
@Service
class TestSyncService{
  @Transactional
  public synchronized void  a (){
        //do something
  }
  public synchronized void  b (){
      b();
  }
}

这样的话事物会不生效的,不会回滚

还有一个办法是 不要直接调用b, 要把自己的service 注入,

 @Service
 class TestSyncService{
  @Autowired
  private TestSyncService testSyncService
  @Transactional
  public synchronized void  a (){
      //do something
  }
  public synchronized void  b (){
      testSyncService.b();
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、Spring和SpringMVC区别? Spring是IOC和AOP的容器框架,SpringMVC是基于Spr...
    技术灭霸阅读 235评论 0 0
  • SpringBoot学习 什么是SpringBoot他的优点是什么? SpringBoot简介 Spring Bo...
    一只胡说八道的猴子阅读 1,293评论 0 0
  • springboot 概述 SpringBoot能够快速开发,简化部署,适用于微服务 参考嘟嘟大神SpringBo...
    一纸砚白阅读 5,480评论 2 20
  • 最近再研究springboot的原理😋颇有收获,现在让我分享一下springboot如何使用吧~ 想要解锁更多新姿...
    tengshe789阅读 6,010评论 4 94
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32