springboot 開啟事務以及手動提交事務
注入依賴:
@Resource
DataSourceTransactionManager dataSourceTransactionManager;
@Resource
TransactionDefinition transactionDefinition;
手動開啟事務
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
手動提交事務
dataSourceTransactionManager.commit(transactionStatus);//提交
手動回滾事務
dataSourceTransactionManager.rollback(transactionStatus);//最好是放在catch 里面,防止程序異常而事務一直卡在哪里未提交
這種方式避免了像套娃似的層層使用事務注解@Transactional,使用起來更靈活。