声明:我用的lombok
@RequiredArgsConstructor(onConstructor_ = {@Autowired}) 因此不用自己加注解注入
步骤1:
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
注入:
private final PlatformTransactionManager transactionManager;
步骤2:
TransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
默认RR 如果想用RC
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
TransactionStatus status = transactionManager.getTransaction(def);
步骤3:
try {
// 业务逻辑
// 业务执行后 提交事务
transactionManager.commit(status);
} catch (Exception e) {
// 回滚
transactionManager.roollback(status);
// 抛出异常 打error等
}