spring同步手動開啓回滾提交事務和異步手動回滾提交事務

 

1.同步線程

     @Autowired
     DataSourceTransactionManager dataSourceTransactionManager;

    @Autowired
    TransactionDefinition transactionDefinition;

    //開啓事務
            TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
            try{
                //提交事務
                dataSourceTransactionManager.commit(transactionStatus);
            }catch (Exception e){
                log.error("異常:{}",e);
                //回滾事務
                dataSourceTransactionManager.rollback(transactionStatus);
            }

 

2.異步線程

 


    //spring線程池
    @Autowired
    private ThreadPoolTaskExecutor taskExecutor;

     @Autowired
    private PlatformTransactionManager platformTransactionManager;

    @Autowired
    private TransactionDefinition transactionDefinition;

 //執行異步任務
 taskExecutor.execute(new Runnable() {
            @Override
            public void run() {
                TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
                try{
                    platformTransactionManager.commit(transactionStatus);
                }catch (Exception e){
                    log.error("異常:{}",e);
                    platformTransactionManager.rollback(transactionStatus);
                }
            }
        });

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章