Spring的事務關於配置到service和dao中的區別
阿新 • • 發佈:2018-12-25
Spring事務為業務邏輯進行事務管理,保證業務邏輯上資料的原子性。
事務得根據專案性質來細分:事務可以設定到三個層面(dao層、service層和web層)。
第一:web層事務,這一般是針對那些安全性要求較高的系統來說的。例如電子商務網站。粒度小,一般系統用不著這麼細。
第二:service層事務,這是一常見的事務劃分, 將事務設定在業務邏輯上,只要業務邏輯出錯或異常就事務回滾。粒度較小,一般推薦這種方式。
第三:資料持久層資料務,也就是常說的資料庫事務。這種事務在安全性方面要求低。就是給一個簡單的增刪改之類的操作增加事務操作。粒度大
給Service層配置事務,因為一個Service層方法操作可以關聯到多個DAO的操作。在Service層執行這些Dao操作,多DAO操作有失敗全部回滾,成功則全部提交。
事務分為業務事務和系統事務,業務事務也就是業務邏輯上操作的一致性,系統事務自然就是指真正的資料庫事務,
Spring配置事務的是為了什麼進行管理,當然是為業務邏輯進行事務管理,保證業務邏輯上資料的原子性;
Dao層是什麼,資料訪問層,是不應該包含業務邏輯的,這就是和Service層的不同;
Service層就是業務邏輯層,事務的管理就是為Service層上的保證。