亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring Boot事務(wù)配置詳解

 更新時(shí)間:2021年01月26日 11:03:00   作者:Lovnx  
這篇文章主要介紹了Spring Boot事務(wù)配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、在啟動(dòng)主類添加注解:@EnableTransactionManagement 來(lái)啟用注解式事務(wù)管理,相當(dāng)于之前在xml中配置的<tx:annotation-driven />注解驅(qū)動(dòng)。

2、在需要事務(wù)的類或者方法上面添加@Transactional() 注解,里面可以配置需要的粒度:

這里寫圖片描述

這么多東西提供配置:

Isolation :隔離級(jí)別

隔離級(jí)別是指若干個(gè)并發(fā)的事務(wù)之間的隔離程度,與我們開發(fā)時(shí)候主要相關(guān)的場(chǎng)景包括:臟讀取、重復(fù)讀、幻讀。

我們可以看 org.springframework.transaction.annotation.Isolation 枚舉類中定義了五個(gè)表示隔離級(jí)別的值:

public enum Isolation { 
  DEFAULT(-1),
  READ_UNCOMMITTED(1),
  READ_COMMITTED(2),
  REPEATABLE_READ(4),
  SERIALIZABLE(8);
}

DEFAULT :這是默認(rèn)值,表示使用底層數(shù)據(jù)庫(kù)的默認(rèn)隔離級(jí)別。對(duì)大部分?jǐn)?shù)據(jù)庫(kù)而言,通常這值就是: READ_COMMITTED 。
READ_UNCOMMITTED :該隔離級(jí)別表示一個(gè)事務(wù)可以讀取另一個(gè)事務(wù)修改但還沒(méi)有提交的數(shù)據(jù)。該級(jí)別不能防止臟讀和不可重復(fù)讀,因此很少使用該隔離級(jí)別。
READ_COMMITTED :該隔離級(jí)別表示一個(gè)事務(wù)只能讀取另一個(gè)事務(wù)已經(jīng)提交的數(shù)據(jù)。該級(jí)別可以防止臟讀,這也是大多數(shù)情況下的推薦值。
REPEATABLE_READ :該隔離級(jí)別表示一個(gè)事務(wù)在整個(gè)過(guò)程中可以多次重復(fù)執(zhí)行某個(gè)查詢,并且每次返回的記錄都相同。即使在多次查詢之間有新增的數(shù)據(jù)滿足該查詢,這些新增的記錄也會(huì)被忽略。該級(jí)別可以防止臟讀和不可重復(fù)讀。
SERIALIZABLE :所有的事務(wù)依次逐個(gè)執(zhí)行,這樣事務(wù)之間就完全不可能產(chǎn)生干擾,也就是說(shuō),該級(jí)別可以防止臟讀、不可重復(fù)讀以及幻讀。但是這將嚴(yán)重影響程序的性能。通常情況下也不會(huì)用到該級(jí)別。
指定方法:通過(guò)使用 isolation 屬性設(shè)置,例如:@Transactional(isolation = Isolation.DEFAULT)

Propagation:傳播行為

所謂事務(wù)的傳播行為是指,如果在開始當(dāng)前事務(wù)之前,一個(gè)事務(wù)上下文已經(jīng)存在,此時(shí)有若干選項(xiàng)可以指定一個(gè)事務(wù)性方法的執(zhí)行行為。

我們可以看 org.springframework.transaction.annotation.Propagation 枚舉類中定義了6個(gè)表示傳播行為的枚舉值:

public enum Propagation {   REQUIRED(0),  SUPPORTS(1),  MANDATORY(2),  REQUIRES_NEW(3),  NOT_SUPPORTED(4),  NEVER(5),  NESTED(6);}
  • REQUIRED :如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒(méi)有事務(wù),則創(chuàng)建一個(gè)新的事務(wù)。
  • SUPPORTS :如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒(méi)有事務(wù),則以非事務(wù)的方式繼續(xù)運(yùn)行。
  • MANDATORY :如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒(méi)有事務(wù),則拋出異常。
  • REQUIRES_NEW :創(chuàng)建一個(gè)新的事務(wù),如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。
  • NOT_SUPPORTED :以非事務(wù)方式運(yùn)行,如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。
  • NEVER :以非事務(wù)方式運(yùn)行,如果當(dāng)前存在事務(wù),則拋出異常。
  • NESTED :如果當(dāng)前存在事務(wù),則創(chuàng)建一個(gè)事務(wù)作為當(dāng)前事務(wù)的嵌套事務(wù)來(lái)運(yùn)行;如果當(dāng)前沒(méi)有事務(wù),則該取值等價(jià)于 REQUIRED
  • 指定方法:通過(guò)使用 propagation 屬性設(shè)置,例如:@Transactional(propagation = Propagation.REQUIRED)

到此這篇關(guān)于Spring Boot事務(wù)配置詳解的文章就介紹到這了,更多相關(guān)SpringBoot事務(wù)配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot導(dǎo)出excel多個(gè)sheet導(dǎo)出的實(shí)現(xiàn)

    springboot導(dǎo)出excel多個(gè)sheet導(dǎo)出的實(shí)現(xiàn)

    在Java開發(fā)過(guò)程中,合理配置pom.xml文件對(duì)項(xiàng)目的管理和構(gòu)建至關(guān)重要,通過(guò)添加依賴管理項(xiàng)目所需的庫(kù),簡(jiǎn)化了項(xiàng)目構(gòu)建過(guò)程,同時(shí),掌握導(dǎo)出excel工具類的使用,可以有效地處理數(shù)據(jù)導(dǎo)出需求,提高工作效率,本文結(jié)合個(gè)人經(jīng)驗(yàn)
    2024-10-10
  • Java實(shí)現(xiàn)檢查多個(gè)時(shí)間段是否有重合

    Java實(shí)現(xiàn)檢查多個(gè)時(shí)間段是否有重合

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)檢查多個(gè)時(shí)間段是否有重合,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • 線程池ThreadPoolExecutor使用簡(jiǎn)介與方法實(shí)例

    線程池ThreadPoolExecutor使用簡(jiǎn)介與方法實(shí)例

    今天小編就為大家分享一篇關(guān)于線程池ThreadPoolExecutor使用簡(jiǎn)介與方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • java中以DES的方式實(shí)現(xiàn)對(duì)稱加密并提供密鑰的實(shí)例

    java中以DES的方式實(shí)現(xiàn)對(duì)稱加密并提供密鑰的實(shí)例

    這篇文章主要介紹了java中以DES的方式實(shí)現(xiàn)對(duì)稱加密并提供密鑰的實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分知識(shí),需要的朋友可以參考下
    2017-08-08
  • JAVA中阻止類的繼承(官方和非官方)

    JAVA中阻止類的繼承(官方和非官方)

    在面向?qū)ο蟮睦碚撝? 有一些方案要求你用一個(gè)辦法來(lái)聲明一個(gè)不可繼承的類。一般而言,如果類提供的功能不應(yīng)該被改變,或者更恰當(dāng)?shù)恼f(shuō),是被覆蓋(override)的時(shí)候才會(huì)出現(xiàn)這種情況。在這篇文章里,我討論在JAVA語(yǔ)言中的實(shí)現(xiàn)辦法--官方和非官方的辦法
    2014-01-01
  • 詳解如何使用IntelliJ IDEA新建一個(gè)Servlet項(xiàng)目

    詳解如何使用IntelliJ IDEA新建一個(gè)Servlet項(xiàng)目

    這篇文章主要介紹了詳解如何使用IntelliJ IDEA新建一個(gè)Servlet項(xiàng)目,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 使用springboot單元測(cè)試對(duì)weblistener的加載測(cè)試

    使用springboot單元測(cè)試對(duì)weblistener的加載測(cè)試

    這篇文章主要介紹了使用springboot單元測(cè)試對(duì)weblistener的加載測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java中Base64字符串出現(xiàn)不合法字符的問(wèn)題解決

    java中Base64字符串出現(xiàn)不合法字符的問(wèn)題解決

    非法的base64數(shù)據(jù)可能導(dǎo)致編碼或解碼過(guò)程出錯(cuò),本文主要介紹了java中Base64字符串出現(xiàn)不合法字符的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • C++ 虛函數(shù)與純虛函數(shù)代碼詳解

    C++ 虛函數(shù)與純虛函數(shù)代碼詳解

    本文主要介紹了C++ 虛函數(shù)與純虛函數(shù)的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 關(guān)于springboot集成阿里云短信的問(wèn)題

    關(guān)于springboot集成阿里云短信的問(wèn)題

    這篇文章主要介紹了springboot集成阿里云短信的方法,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11

最新評(píng)論