欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

這里寫圖片描述

這么多東西提供配置:

Isolation :隔離級別

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

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

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

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

Propagation:傳播行為

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

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

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)前沒有事務(wù),則創(chuàng)建一個新的事務(wù)。
  • SUPPORTS :如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則以非事務(wù)的方式繼續(xù)運行。
  • MANDATORY :如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則拋出異常。
  • REQUIRES_NEW :創(chuàng)建一個新的事務(wù),如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。
  • NOT_SUPPORTED :以非事務(wù)方式運行,如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。
  • NEVER :以非事務(wù)方式運行,如果當(dāng)前存在事務(wù),則拋出異常。
  • NESTED :如果當(dāng)前存在事務(wù),則創(chuàng)建一個事務(wù)作為當(dāng)前事務(wù)的嵌套事務(wù)來運行;如果當(dāng)前沒有事務(wù),則該取值等價于 REQUIRED 。
  • 指定方法:通過使用 propagation 屬性設(shè)置,例如:@Transactional(propagation = Propagation.REQUIRED)

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

相關(guān)文章

  • Springboot+Redis執(zhí)行l(wèi)ua腳本的項目實踐

    Springboot+Redis執(zhí)行l(wèi)ua腳本的項目實踐

    本文主要介紹了Springboot+Redis執(zhí)行l(wèi)ua腳本的項目實踐,詳細的介紹Redis與Lua腳本的結(jié)合應(yīng)用,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Java 時間格式轉(zhuǎn)換之impleDateFormat與Data API解析與使用

    Java 時間格式轉(zhuǎn)換之impleDateFormat與Data API解析與使用

    想必大家對 SimpleDateFormat 并不陌生。SimpleDateFormat 是 Java 中一個非常常用的類,他是以區(qū)域敏感的方式格式化和解析日期的具體類。 它允許格式化 (date -> text)、語法分析 (text -> date)和標(biāo)準化
    2021-11-11
  • Java實現(xiàn)學(xué)生信息管理系統(tǒng)IO版本

    Java實現(xiàn)學(xué)生信息管理系統(tǒng)IO版本

    這篇文章主要為大家詳細介紹了Java實現(xiàn)學(xué)生信息管理系統(tǒng)IO版本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Java基礎(chǔ)教程之Map遍歷的5種方式

    Java基礎(chǔ)教程之Map遍歷的5種方式

    Map作為Java中的一種集合,以鍵值對的形式存放一批數(shù)據(jù),經(jīng)常會被我們應(yīng)用在項目中,這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之Map遍歷的5種方式,需要的朋友可以參考下
    2024-01-01
  • JavaWeb實現(xiàn)簡單的自動登錄功能

    JavaWeb實現(xiàn)簡單的自動登錄功能

    這篇文章主要為大家詳細介紹了JavaWeb實現(xiàn)簡單的自動登錄功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring與MyBatis集成?AOP整合PageHelper插件的操作過程

    Spring與MyBatis集成?AOP整合PageHelper插件的操作過程

    Spring與MyBatis集成的主要目的是為了提供更強大的數(shù)據(jù)訪問和事務(wù)管理能力,以及簡化配置和提高開發(fā)效率,這篇文章主要介紹了Spring與MyBatis集成AOP整合PageHelper插件,需要的朋友可以參考下
    2023-08-08
  • Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解

    Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解

    這篇文章主要介紹了Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • SpringBoot動態(tài)生成接口實現(xiàn)流程示例講解

    SpringBoot動態(tài)生成接口實現(xiàn)流程示例講解

    最近遇到一個需求,需要在程序運行過程中,可以動態(tài)新增接口,自定義接口參數(shù)名稱,基本類型,以及請求方法,請求頭等等。通過幾天的研究,找到了我需要的解決方案
    2023-01-01
  • springboot下添加日志模塊和設(shè)置日志文件輸出的方法

    springboot下添加日志模塊和設(shè)置日志文件輸出的方法

    日志的使用將通過SLF4J來使用,SLF4J是一個為Java應(yīng)用提供簡單日志記錄的接口,在Spring框架中,SLF4J常常用于處理框架本身以及應(yīng)用程序的日志記錄,本文給大家介紹springboot下添加日志模塊和設(shè)置日志文件輸出的相關(guān)知識,感興趣的朋友一起看看吧
    2023-12-12
  • SpringBoot基于Redis實現(xiàn)短信登錄的操作

    SpringBoot基于Redis實現(xiàn)短信登錄的操作

    驗證碼登錄是非常常見的一種登錄方式,能夠簡化用戶登錄的過程,本文主要介紹了SpringBoot基于Redis實現(xiàn)短信登錄的操作,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12

最新評論