iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0

Spring Boot當中,事務管理是資料一致性與可靠性的關鍵機制,使用Spring Boot的 @Transactional標注,即可達到自動管理事務的功能,確保操作失敗時會自動進行事務回滾,避免資料不一致或錯誤的情況。

回滾的必要性

事務回滾的目的是要在多個操作中,不會因某個操作失敗而讓其他操作完成,這是為了避免資料庫的數據部分成功、部分失敗的狀況,在有多個資料表或資源更新的操作下,這是非常重要。
舉例來說,轉帳時,若扣款成功,但入帳失敗,就得使用回滾機制,讓這筆交易操作都回滾在操作前的狀態,否則金額會不一致,有錯誤轉出的狀況。
而另一個重要的作用是,在異常的狀況下,可以透過回滾機制讓資料庫回到正確的狀態,避免讓損壞的數據提交導致系統異常。

回滾使用場景

  • 金融交易:同前述例子,像是銀行轉帳、處理支付等多個操作,要確保此次交易不能部分成功而已。
  • 訂單處理:像是電商的訂單處理,因有庫存、訂單成立等等,有涉及多個資料表,因此當有其中步驟出錯,就必須回滾變更。
  • 資料同步:當有跨越多張資料表或系統同步時,要確保環節統一成功,若其中一個失敗則要回滾,避免錯誤提交。

事務管理並非Spring Boot才有,關於Java的框架(如Spring Framework、Java EE、JPA 等)幾乎都能適用事務管理及回滾事務管理及回滾機制,不過Spring Boot只要使用@Transactional即能管理事務,不用手動編寫繁瑣邏輯,大幅降低我們編寫程式的負擔。


上一篇
建構函數作用 vs 建構無參函數的必要
下一篇
保護會員數據-Spring Boot的資料加密實踐
系列文
從卡關到通關的Spring Boot 腦內風暴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言