<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
首先,事務這個概念是資料庫層面的,Spring只是基於資料庫中的事務進行擴充套件,以及提供了一些能讓程式設計師更新方便操作事務的方式
Spring中支援程式設計式事務和宣告式事務管理兩種方式
public class B { @Autowired private TransactionTemplate template; public void sout(){ TransactionCallback<Integer> transactionCallback = new TransactionCallback<Integer>() { @Override public Integer doInTransaction(TransactionStatus transactionStatus) { //jdbcTemplate.update //jdbcTemplate.update if(執行失敗){ //回滾事務 transactionStatus.setRollbackOnly(); return -1; } return 1; } }; Integer result = template.execute(transactionCallback); }
當加了@Transactional註解後,Spring會基於這個類生成一個代理物件,會將這個代理物件作為bean,當在使用這個代理物件的方法時,如果這個方法上存在@Transactional註解,那麼代理邏輯會先把事務的自動提交設定為false,然後再去執行原本的業務邏輯方法,如果執行業務邏輯方法沒有出現異常,那麼代理邏輯中就會將事務提交,如果執行業務邏輯方法出現了異常,那麼會將事務進行回滾。
好處:程式碼級別的事務控制,可以自己控制事務的邏輯,比較靈活
缺點:太麻煩,需要自己實現所有的事務邏輯
是Spring在AOP基礎上提供的事務實現機制。
public class B { @Autowired private TransactionTemplate template; @Transactional public void sout(){ System.out.println("=================A====================="); } }
優點:不需要在業務程式碼中新增事務管理的程式碼,只需要在組態檔中做相關的事務規則宣告規則就可以了。
缺點:只能只能針對方法級別,無法控制程式碼級別。
Propagation:多個事務方法相互呼叫時,事務是如何在這些方法鍵傳播
方法A是一個事務方法。方法A在執行的過程中呼叫了方法B,那麼方法B有無事務以及方法B對事物的要求不同都會對方法A的事務具體執行造成影響,同時方法A的事務對方法B的事務執行也有影響。這種影響具體是什麼就由兩個方法所定義的事務傳播型別所決定
a呼叫b,以下描述,當前均只a,自己均指b
和REQUIRES_NEW的區別:
REQUIRES_NEW是新建一個事務,並且新開啟的事務與原事務無關,而NESTED則是當前存在事務時(我們把當前事務成為父事務)會開啟一個巢狀事務(稱之為一個子事務)。在NESTED情況下父事務回滾時,子事務也會回滾,而在REQUIRES_NEW情況下,原有事務回滾,不會影響新開啟的子事務。
和REQUIRED的區別:
REQUIRED情況下,呼叫方存在事務時,則被呼叫和呼叫方法使用同一事務,那麼被呼叫方出現異常時,由於共用一個事務,所以無論呼叫方法是否catch異常,事務都會回滾(父子事務一起回滾),而在NESTED情況下,被呼叫方發生異常時,呼叫發可以catch其異常,這樣只有子事務回滾,父事務不受影響(父事務是否需要回滾可以自行決定)
資料庫設定的隔離級別是read commited,而spring設定的隔離級別是repeatable read,這個時候隔離級別以哪個為準?
以Spring為準(spring設定的會覆蓋資料庫的隔離級別),如果Spring設定的隔離級別資料庫不支援,效果取決於資料庫
到此這篇關於Spring中事務幾個常見的問題解決的文章就介紹到這了,更多相關Spring事務 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45