您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spring事務的傳播行為是什么”,在日常操作中,相信很多人在Spring事務的傳播行為是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring事務的傳播行為是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
這四個英文單詞拼寫我一直記不住,求記憶方法
原子性(Atomicity):事務是一系列原子操作,要么全部成功,要么全部失敗。
一致性(Consistency):一旦完成(不管是成功還是失敗),確保它所在的一系列業務狀態保持一致,狀態都是成功,或者都是失敗,不能一部分成功一部分失敗。
隔離性(Isolation):不同事務同時進行某項業務,處理相同的數據時候,需要保證事務之間相互獨立,互相之間數據不影響。
持久性(Durability):一旦事務完成,無論發生什么系統性錯誤,事務執行后的數據都被持久化了,不會因為重啟或其他操作對數據進行更改。
我們先給出定義再分別進行簡單的代碼分析
給出百度圖片,請大家參考,首先生命力如果想在工程中運用事務spring 的xml必須開啟事務,以下這些特性一般都是在xml屬性中進行配置。
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
類似這種的配置一定要有,否則萬事具備只欠東風,這個是DB事務有JTA和JPA以及Herbernate等,這里就不展開說明,可自行百度。
無事務運行
事務的傳播特行為為required
結果是因為主鍵沖突將事務進行了回滾,所以兩條數據都沒有插入進去。
事務的傳播行為性為supports
因為調用方未用事務那么就在非事務中運行,所以插入了first的第一條數據。
事務的傳播行為為manatory
因為調用的外層沒有事務,所以兩條數據沒有插入。大家想想下面這種寫法會發生什么現象
事務的傳播行為mandatory
事務的傳播行為required_new
結果和require一樣,兩條數據都沒有入庫,唯一健沖突導致第一條數據回滾,大家可以思考下我下面這兩種情況。
情景1新起的事務拋出異常會不會讓外圍事務回滾?
情景2外圍事務失敗會不會導致新起事務已提交的回滾?
事務的傳播行為not_suppoted
這種情景下,如果你根據我的思路一步走的應該可以想到id 為17的入庫,第二條主鍵沖突雖然然而notSupportSonTransationsl()這個方法沒有事務所以不影響第一條入庫情況,但是外圍事務id為16的要進行回滾了,所以庫中只有一條數據id=17的。
事務的傳播行為NEVER
事務的傳播行為nested
到此,關于“Spring事務的傳播行為是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。