spring事務(wù)配置有幾種方式 1spring的事務(wù)是什么?與數(shù)據(jù)庫的事務(wù)是否一樣?
1spring的事務(wù)是什么?與數(shù)據(jù)庫的事務(wù)是否一樣?本質(zhì)上其實是同一個概念,spring的事務(wù)是對數(shù)據(jù)庫的事務(wù)的封裝,最后本質(zhì)的實現(xiàn)還是在數(shù)據(jù)庫,假如數(shù)據(jù)庫不支持事務(wù)的話,spring的事務(wù)是沒有作用
1spring的事務(wù)是什么?與數(shù)據(jù)庫的事務(wù)是否一樣?
本質(zhì)上其實是同一個概念,spring的事務(wù)是對數(shù)據(jù)庫的事務(wù)的封裝,最后本質(zhì)的實現(xiàn)還是在數(shù)據(jù)庫,假如數(shù)據(jù)庫不支持事務(wù)的話,spring的事務(wù)是沒有作用的.數(shù)據(jù)庫的事務(wù)說簡單就只有開啟,回滾和關(guān)閉,spring對數(shù)據(jù)庫事務(wù)的包裝,原理就是拿一個數(shù)據(jù)連接,根據(jù)spring的事務(wù)配置,操作這個數(shù)據(jù)連接對數(shù)據(jù)庫進行事務(wù)開啟,回滾或關(guān)閉操作.但是spring除了實現(xiàn)這些,還配合spring的傳播行為對事務(wù)進行了更廣泛的管理.其實這里還有個重要的點,那就是事務(wù)中涉及的隔離級別,以及spring如何對數(shù)據(jù)庫的隔離級別進行封裝.事務(wù)與隔離級別放在一起理解會更好些.以上回答希望能幫助到你.
怎么理解spring事務(wù)的傳播特性?
Spring中通過Propagation來設(shè)置事務(wù)的傳播屬性的,在這個屬性中提供了我們其中關(guān)于事務(wù)傳播的特性:
1.PROPAGATION_REQUIRED:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就新建一個事務(wù)。這是最常見的選擇。
2.PROPAGATION_SUPPORTS:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就以非事務(wù)方式執(zhí)行。
3.PROPAGATION_MANDATORY:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就拋出異常。
4.PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起。
5.PROPAGATION_NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作,如果當(dāng)前存在事務(wù),就把當(dāng)前事務(wù)掛起。
6.PROPAGATION_NEVER:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。
7.PROPAGATION_NESTED:支持當(dāng)前事務(wù),新增Savepoint點,與當(dāng)前事務(wù)同步提交或回滾。