编程式事务

   @Resource
   private TransactionTemplate transactionTemplate;
   
   
   public void saveData(Object obj) {
         queryDataOne();
         queryDataTwo();
         transactionTemplate.execute(state -> {
            addDataOne();
            updateDataTwo();
            return Boolean.TRUE;
         })
   }

在spring中为了支持编程式事务,专门提供了一个类:TransactionTemplate,在它的execute方法中,就实现了事务的功能。

相较于@Transactional注解声明式事务,我更建议大家使用,基于TransactionTemplate的编程式事务。主要原因如下:

  1. 避免由于spring aop问题,导致事务失效的问题。
  2. 能够更小粒度的控制事务的范围,更直观。
posted @ 2021-12-27 09:31  二次元的程序猿  阅读(510)  评论(0编辑  收藏  举报