service層的方法被controller層呼叫時,在方法上加@transactional註解,運算元據庫時會有事務。
@transactional
public
void
insert()
catch
(exception e)
}
正常流程下事務會自動提交,異常情形需要開發人員手動處理:
情景一、異常捕獲後事務不回自動回滾,需要手動回滾。(不加try catch或手動丟擲異常事務會自動回滾)
情景二、業務邏輯需要在方法結束前,手動回滾或提交事務
1、注入事務管理器
@autowired
private platformtransactionmanager platformtransactionmanager;
2、事務回滾
@transactional
public
void
insert()
catch
(exception e)
}
3、事務提交
@transactional
public
void
insert()
catch
(exception e)
// 事務手動提交
platformtransactionmanager.
commit
(transactionaspectsupport.
currenttransactionstatus()
);// 後續業務邏輯
}
回滾還可以這樣寫
@transactional
public
void
insert()
catch
(exception e)
// transactionaspectsupport.currenttransactionstatus()沒有事務提交功能
}
springboot事務手動回滾
專案中的事務,我們一般都是使用註解式事務,在service層加上 transactional,或者加在具體方法上。但有的時候我們需要手動回滾事務,如以下兩種情況 1 try.catch到異常之後需要回滾事務。如阿里巴巴開發手冊中就提到 強制 有 try 塊放到了事務 中,catch 異常後,如果需要...
SpringBoot手動新增事務回滾
org.springframework.boot spring boot starter jdbc 新增依賴成功後,事務就預設開啟了,只需要在需要的方法和類上新增註解 transactional上就可以 注意 當新增在類上,說明此類的public的方法都行事務管理 transactionaspect...
SpringBoot 手動提交事務
今天在工作中遇到了乙個spring事務的問題 在service方法內需要通過執行緒去執行新增使用者積分和使用者積分日誌的情況,試了下通過 transactional宣告式事務不起作用,只能使用手動事務去控制 因此寫了這篇部落格,記錄一下這個情況,希望能幫助到大家 一 事務的重要性,相信在實際開發過程...