外观
事务处理模版
约 181 字小于 1 分钟
springtransaction
2023-06-27
⚠ 请注意,本文编写于 738 天前,最后最后修改于 738 天前,其中某些信息可能已经过时。
Java
的2种灵活事务处理模版
事务事件
必须在使用事务的方法中引用,否则会报错
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCompletion(int status) {
// 事务执行完成后执行,不快于事务提交执行
switch (status) {
case TransactionSynchronization.STATUS_COMMITTED:
// 事务已提交
break;
case TransactionSynchronization.STATUS_ROLLED_BACK:
// 事务已回滚
break;
default:
logger.info("事务未知状态:{}", status);
break;
}
runnable.run();
}
});
手动事务
// 注入事务
@Resource
private PlatformTransactionManager platformTransactionManager;
// 手动开启事务
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus transaction = platformTransactionManager.getTransaction(def);
// 手动提交事务
platformTransactionManager.commit(transaction);
// 手动回滚事务
platformTransactionManager.rollback(transaction);