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