最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot通過aop實(shí)現(xiàn)事務(wù)控制過程解析

 更新時(shí)間:2020年03月09日 11:43:02   作者:程序曉猿  
這篇文章主要介紹了Springboot通過aop實(shí)現(xiàn)事務(wù)控制過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

spring的事務(wù)控制本質(zhì)上是通過aop實(shí)現(xiàn)的。

在springboot中使用時(shí),可以通過注解@Transactional進(jìn)行類或者方法級(jí)別的事務(wù)控制,也可以自己通過spring提供的事務(wù)管理器手動(dòng)控制事務(wù)

一、 @Transactional注解進(jìn)行進(jìn)行類或者方法級(jí)別的事務(wù)控制

不需要進(jìn)行特別的設(shè)置,按照正常的配置整合spring和mybatis后,在需要進(jìn)行事務(wù)控制的類上或者方法上加上

@Transactional注解,即可對(duì)其進(jìn)行事務(wù)控制。

二、手動(dòng)控制事務(wù)

當(dāng)需要在一個(gè)方法的內(nèi)部進(jìn)行事務(wù)控制時(shí),就需要利用spring提供的事務(wù)管理器來手動(dòng)控制。在方法所在的類中注入事務(wù)管理器,然后在方法中需要的位置利用事務(wù)管理器進(jìn)行控制:開啟事務(wù),提交事務(wù),回滾事務(wù)

  @Autowired
  PlatformTransactionManager platformTransactionManager;
  @Autowired
  TransactionDefinition transactionDefinition;
public void testTransaction() {

    //開啟事務(wù)
    TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
    try {
      CategoryInfo categoryInfo1=new CategoryInfo();
      categoryInfo1.setName("分類1");
      categoryDataDao.add(categoryInfo1);
      //模擬發(fā)生異常,事務(wù)回滾后應(yīng)該數(shù)據(jù)庫(kù)兩條記錄都沒有
      int i=1/0;
      CategoryInfo categoryInfo2=new CategoryInfo();
      categoryInfo2.setName("分類2");
      categoryDataDao.add(categoryInfo2);
      //提交事務(wù)
      platformTransactionManager.commit(transactionStatus);
    } catch (Exception e) {
      logger.error("發(fā)生異常事務(wù)回滾");
      platformTransactionManager.rollback(transactionStatus);
    }
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

乐清市| 鄱阳县| 徐州市| 叙永县| 锦屏县| 普格县| 于都县| 高安市| 乌拉特后旗| 鄂尔多斯市| 德化县| 克什克腾旗| 台中县| 石渠县| 仙游县| 石楼县| 万山特区| 蓬安县| 修武县| 大城县| 海淀区| 绵竹市| 定远县| 乌鲁木齐县| 满洲里市| 淳化县| 龙江县| 四川省| 大港区| 大名县| 唐河县| 兴文县| 新河县| 东宁县| 潮州市| 嘉善县| 新野县| 威远县| 绥阳县| 通渭县| 板桥市|