Spring中事務的提交和回滾是通過編程式事務管理或聲明式事務管理來實現的。
@Autowired
private PlatformTransactionManager transactionManager;
public void doSomething() {
TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
transactionTemplate.execute(status -> {
// 執行業務邏輯
// 如果需要回滾,可以通過status.setRollbackOnly()來設置回滾
return null;
});
}
@Transactional
public void doSomething() {
// 執行業務邏輯
}
在以上兩種方式中,如果方法正常執行完畢,事務會自動提交;如果在方法中拋出異常,事務會自動回滾。另外,編程式事務管理還可以手動設置事務的回滾狀態。