亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Spring Boot事務配置操作

瀏覽:57日期:2023-08-13 17:47:33

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

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

Spring Boot事務配置操作

這么多東西提供配置:

Isolation :隔離級別

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

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

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

DEFAULT :這是默認值,表示使用底層數據庫的默認隔離級別。對大部分數據庫而言,通常這值就是: READ_COMMITTED 。

READ_UNCOMMITTED :該隔離級別表示一個事務可以讀取另一個事務修改但還沒有提交的數據。該級別不能防止臟讀和不可重復讀,因此很少使用該隔離級別。

READ_COMMITTED :該隔離級別表示一個事務只能讀取另一個事務已經提交的數據。該級別可以防止臟讀,這也是大多數情況下的推薦值。

REPEATABLE_READ :該隔離級別表示一個事務在整個過程中可以多次重復執行某個查詢,并且每次返回的記錄都相同。即使在多次查詢之間有新增的數據滿足該查詢,這些新增的記錄也會被忽略。該級別可以防止臟讀和不可重復讀。

SERIALIZABLE :所有的事務依次逐個執行,這樣事務之間就完全不可能產生干擾,也就是說,該級別可以防止臟讀、不可重復讀以及幻讀。但是這將嚴重影響程序的性能。通常情況下也不會用到該級別。

指定方法:通過使用 isolation 屬性設置,例如:@Transactional(isolation = Isolation.DEFAULT)

Propagation:傳播行為

所謂事務的傳播行為是指,如果在開始當前事務之前,一個事務上下文已經存在,此時有若干選項可以指定一個事務性方法的執行行為。

我們可以看 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 :如果當前存在事務,則加入該事務;如果當前沒有事務,則創建一個新的事務。

SUPPORTS :如果當前存在事務,則加入該事務;如果當前沒有事務,則以非事務的方式繼續運行。

MANDATORY :如果當前存在事務,則加入該事務;如果當前沒有事務,則拋出異常。

REQUIRES_NEW :創建一個新的事務,如果當前存在事務,則把當前事務掛起。

NOT_SUPPORTED :以非事務方式運行,如果當前存在事務,則把當前事務掛起。

NEVER :以非事務方式運行,如果當前存在事務,則拋出異常。

NESTED :如果當前存在事務,則創建一個事務作為當前事務的嵌套事務來運行;如果當前沒有事務,則該取值等價于 REQUIRED 。

指定方法:通過使用 propagation 屬性設置,例如:@Transactional(propagation = Propagation.REQUIRED)

補充知識:SpringBoot配置全局事務(復制就能用)

廢話不多說,看代碼吧~

@Aspect@Configurationpublic class TransactionAdviceConfig { private static final String AOP_POINTCUT_EXPRESSION = 'execution (* com.***.service.*.*(..))'; @Autowired private PlatformTransactionManager transactionManager; @Bean public TransactionInterceptor txAdvice() { DefaultTransactionAttribute txAttr_REQUIRED = new DefaultTransactionAttribute(); txAttr_REQUIRED.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); DefaultTransactionAttribute txAttr_REQUIRED_READONLY = new DefaultTransactionAttribute(); txAttr_REQUIRED_READONLY.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); txAttr_REQUIRED_READONLY.setReadOnly(true); NameMatchTransactionAttributeSource source = new NameMatchTransactionAttributeSource(); source.addTransactionalMethod('add*', txAttr_REQUIRED); source.addTransactionalMethod('save*', txAttr_REQUIRED); source.addTransactionalMethod('delete*', txAttr_REQUIRED); source.addTransactionalMethod('update*', txAttr_REQUIRED); source.addTransactionalMethod('exec*', txAttr_REQUIRED); source.addTransactionalMethod('set*', txAttr_REQUIRED); source.addTransactionalMethod('get*', txAttr_REQUIRED_READONLY); source.addTransactionalMethod('query*', txAttr_REQUIRED_READONLY); source.addTransactionalMethod('find*', txAttr_REQUIRED_READONLY); source.addTransactionalMethod('list*', txAttr_REQUIRED_READONLY); source.addTransactionalMethod('count*', txAttr_REQUIRED_READONLY); source.addTransactionalMethod('is*', txAttr_REQUIRED_READONLY); return new TransactionInterceptor(transactionManager, source); } @Bean public Advisor txAdviceAdvisor() { AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); pointcut.setExpression(AOP_POINTCUT_EXPRESSION); return new DefaultPointcutAdvisor(pointcut, txAdvice()); }}

以上這篇Spring Boot事務配置操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 成 人 免费观看网站 | baoyutv最新在线观看 | 最新露脸国产精品视频 | 丝袜亚洲综合 | 91久久青青草原免费 | 日本一本色道免费视频 | 欧美在线观看成人高清视频 | 欧美国产日韩做一线 | 我们不能是朋友未删减版在线看 | 色婷婷综合久久久久中文 | 小明www永久免费播放平台 | 亚洲美女爱做色禁图无遮 | 色多多成视频人在线观看 | 色偷偷亚洲女人天堂观看欧 | 亚洲一区欧美日韩 | 国产主播啪啪 | 永久免费看黄在线播放 | 黄色在线观看网址 | 国产成+人+亚洲+欧美+日韩 | 久久一本久综合久久爱 | yy6080韩国日本三理论 | 国产免费小视频在线观看 | 欧美激情人成日本在线视频 | 日本一本久道 | 拍拍视频免费观看网站在线观看 | 国产三级在线视频播放线 | 欧美成人丝袜一区二区 | 国产欧美一区二区三区免费 | 成年人快播 | 欧美一级淫片吊带丝袜 | 国产精品成人扳一级aa毛片 | 夜色成人免费观看 | 中国欧美日韩一区二区三区 | 久久亚洲精品成人 | 一本伊人 | 欧美日韩不卡视频 | 日本黄色毛片 | 欧美日韩一区二区三区毛片 | 国产最新进精品视频 | 国产精品果冻麻豆精东天美 | 国内精品视频成人一区二区 |