在Spring中編寫事務(wù)的介紹
理解事務(wù)之前,先講一個(gè)你日常生活中最常干的事:取錢。
比如你去ATM機(jī)取1000塊錢,大體有兩個(gè)步驟:首先輸入密碼金額,銀行卡扣掉1000元錢;然后ATM出1000元錢。這兩個(gè)步驟必須是要么都執(zhí)行要么都不執(zhí)行。如果銀行卡扣除了1000塊但是ATM出錢失敗的話,你將會(huì)損失1000元;如果銀行卡扣錢失敗但是ATM卻出了1000塊,那么銀行將損失1000元。所以,如果一個(gè)步驟成功另一個(gè)步驟失敗對(duì)雙方都不是好事,如果不管哪一個(gè)步驟失敗了以后,整個(gè)取錢過程都能回滾,也就是完全取消所有操作的話,這對(duì)雙方都是極好的。
事務(wù)就是用來解決類似問題的。事務(wù)是一系列的動(dòng)作,它們綜合在一起才是一個(gè)完整的工作單元,這些動(dòng)作必須全部完成,如果有一個(gè)失敗的話,那么事務(wù)就會(huì)回滾到最開始的狀態(tài),仿佛什么都沒發(fā)生過一樣。
在企業(yè)級(jí)應(yīng)用程序開發(fā)中,事務(wù)管理必不可少的技術(shù),用來確保數(shù)據(jù)的完整性和一致性。
在Spring中編寫事務(wù)的方式,是使用Spring的TransactionTemplate。就想Spring中的其他模板類一樣,TransactionTemplate利用一種回調(diào)機(jī)制,讓用戶編寫需要在事務(wù)中編寫的代碼。
transactionTemplate.execute(new TransactionCallBack(){ public Object doInTransaction(TransactionStatus ts){ } });
那么,這里的transactionTemplate是從哪里來的呢?它和TransactionManager是什么關(guān)系呢?
首先,這個(gè)transactionTemplate需要注入到業(yè)務(wù)bean中。
其次,TransactionTemplate中有一個(gè)成員變量,是TransactionManager類型的,也需要自動(dòng)注入一個(gè)TransactionManager。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
詳解如何讓Spring MVC顯示自定義的404 Not Found頁面
這篇文章主要介紹了詳解如何讓Spring MVC顯示自定義的404 Not Found頁面,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10SpringBoot+Vue項(xiàng)目新手快速入門指南
最近剛剛做了一個(gè)基于vue+springboot的系統(tǒng),于是基于這點(diǎn),對(duì)遇到的一些問題進(jìn)行一些配置的匯總,下面這篇文章主要給大家介紹了關(guān)于SpringBoot+Vue項(xiàng)目新手快速入門的相關(guān)資料,需要的朋友可以參考下2022-06-06Java數(shù)據(jù)結(jié)構(gòu)之List的使用總結(jié)
List是Java中比較常用的集合類,指一系列存儲(chǔ)數(shù)據(jù)的接口和類,可以解決復(fù)雜的數(shù)據(jù)存儲(chǔ)問題,本文就來拿實(shí)際案例總結(jié)介紹一下List的使用方法,感興趣的朋友快來看看吧2021-11-11Springboot Retry組件@Recover失效問題解決方法
在使用springboot的retry模塊時(shí),你是否出現(xiàn)過@Recover注解失效的問題呢?不用擔(dān)心,這篇文章就來告訴你解決@Recover失效的辦法,需要的小伙伴可以參考一下2021-11-11IntelliJ IDEA 2020.3 重大特性(新功能一覽)
這篇文章主要介紹了IntelliJ IDEA 2020.3 重大特性(新功能一覽),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12