在Spring中編寫(xiě)事務(wù)的介紹
理解事務(wù)之前,先講一個(gè)你日常生活中最常干的事:取錢(qián)。
比如你去ATM機(jī)取1000塊錢(qián),大體有兩個(gè)步驟:首先輸入密碼金額,銀行卡扣掉1000元錢(qián);然后ATM出1000元錢(qián)。這兩個(gè)步驟必須是要么都執(zhí)行要么都不執(zhí)行。如果銀行卡扣除了1000塊但是ATM出錢(qián)失敗的話(huà),你將會(huì)損失1000元;如果銀行卡扣錢(qián)失敗但是ATM卻出了1000塊,那么銀行將損失1000元。所以,如果一個(gè)步驟成功另一個(gè)步驟失敗對(duì)雙方都不是好事,如果不管哪一個(gè)步驟失敗了以后,整個(gè)取錢(qián)過(guò)程都能回滾,也就是完全取消所有操作的話(huà),這對(duì)雙方都是極好的。
事務(wù)就是用來(lái)解決類(lèi)似問(wèn)題的。事務(wù)是一系列的動(dòng)作,它們綜合在一起才是一個(gè)完整的工作單元,這些動(dòng)作必須全部完成,如果有一個(gè)失敗的話(huà),那么事務(wù)就會(huì)回滾到最開(kāi)始的狀態(tài),仿佛什么都沒(méi)發(fā)生過(guò)一樣。
在企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)中,事務(wù)管理必不可少的技術(shù),用來(lái)確保數(shù)據(jù)的完整性和一致性。
在Spring中編寫(xiě)事務(wù)的方式,是使用Spring的TransactionTemplate。就想Spring中的其他模板類(lèi)一樣,TransactionTemplate利用一種回調(diào)機(jī)制,讓用戶(hù)編寫(xiě)需要在事務(wù)中編寫(xiě)的代碼。
transactionTemplate.execute(new TransactionCallBack(){
public Object doInTransaction(TransactionStatus ts){
}
});
那么,這里的transactionTemplate是從哪里來(lái)的呢?它和TransactionManager是什么關(guān)系呢?
首先,這個(gè)transactionTemplate需要注入到業(yè)務(wù)bean中。
其次,TransactionTemplate中有一個(gè)成員變量,是TransactionManager類(lèi)型的,也需要自動(dòng)注入一個(gè)TransactionManager。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
java serialVersionUID解決序列化類(lèi)版本不一致問(wèn)題面試精講
這篇文章主要為大家介紹了serialVersionUID解決序列化類(lèi)版本不一致問(wèn)題的面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Java Swing實(shí)現(xiàn)坦克大戰(zhàn)游戲
這篇文章主要介紹了Java Swing實(shí)現(xiàn)坦克大戰(zhàn)游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很大的幫助喲,需要的朋友可以參考下2021-05-05
java算法實(shí)現(xiàn)預(yù)測(cè)雙色球中獎(jiǎng)號(hào)碼
這篇文章主要介紹了java算法實(shí)現(xiàn)預(yù)測(cè)雙色球中獎(jiǎng)號(hào)碼的相關(guān)資料,需要的朋友可以參考下2015-12-12
Spring Security登錄接口兼容JSON格式登錄實(shí)現(xiàn)示例
前后端分離中,前端和后端的數(shù)據(jù)交互通常是JSON格式,本文主要介紹了Spring Security登錄接口兼容JSON格式登錄實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
SPRING FRAMEWORK BEAN作用域和生命周期原理解析
這篇文章主要介紹了SPRING FRAMEWORK BEAN作用域和生命周期原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Java數(shù)據(jù)結(jié)構(gòu)之散列表(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵字(key value)而直接進(jìn)行訪(fǎng)問(wèn)的數(shù)據(jù)結(jié)構(gòu)。這篇文章給大家介紹了java數(shù)據(jù)結(jié)構(gòu)之散列表,包括基本概念和散列函數(shù)相關(guān)知識(shí),需要的的朋友參考下吧2017-04-04
解決Spring boot整合mybatis,xml資源文件放置及路徑配置問(wèn)題
這篇文章主要介紹了解決Spring boot整合mybatis,xml資源文件放置及路徑配置問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12

