spring boot aop 事务处理


@Translational 描述的方法是一个事务切入点方法
方法执行之前会开启事务
执行之后会提交或回滚事务
由DataSourceTransactionManager封装具体事务实现

/**

  • 在业务层对象的类上添加了@Transactional注解,表示类中所有方法都要进行事务控制:
  • 1)开启事务
  • 2)执行目标方法
  • 3)提交或回滚事务
  • FAQ?
  • 1)事务属性timeout的含义是什么?是否允许事务超时,默认不允许(-1),一直等.
  • 2)事务属性rollbackFor表示什么?出现什么异常事务要回滚
  • 3)事务属性readOnly含义是什么?这里的事务是否为只读事务.(只读事务中不允许执行更新操作)
  • 4)事务属性isolation含义是什么?用于设置隔离级别I(多个事务并发执行时可能会出现什么问题?-脏读,不可重复读,幻读)

*/

@Transactional(timeout =60,rollbackFor =  Throwable.class,readOnly = false
              ,isolation = Isolation.READ_COMMITTED,
               propagation = Propagation.REQUIRED)

方法上的优先级高于类上的
@Transactional(noRollbackFor = ServiceException.class)

事务的传递性

常用的:
@Transactional(propagation=Propagation.REQUIRED)
当不同的业务层相互调用方法时,当前方法如果没有事务则创建新事务,
如果当前有事务那么即使被调用方法也有事务也会参与当前方法的事务,


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM