spring 事务及事务失效相关面试题

如何使用Spring事务

在serviceImpl方法上加Transactional注解

 @Transactional(rollbackFor = Exception.class)

事务失效场景

  • 数据库引擎不支持事务
    对于Mysql数据库而言innodb支持事务,myisam不支持
  • Service类没有交给Spring管理
    spring事务是基于AOP
  • Service的方法必须是public,private、final、static方法不生效(private方法是用户私有的方法,用户自己去维护,static方法是类方法,不是spring 的bean)
  • 必须在同一个线程里
    以下代码不生效
 @Transactional(rollbackFor = Exception.class)
 public void f(){
   new Thread(()->{
   //....
   }).start();
 }
  • 在同一个service中 非事务方法调用事务方法事务一定不生效
    两个事务方法调用生效
发布了6 篇原创文章 · 获赞 3 · 访问量 862

猜你喜欢

转载自blog.csdn.net/weixin_40882266/article/details/105023457