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);
}
}
});