日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot学习笔记(8):事物处理

發布時間:2025/3/15 javascript 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot学习笔记(8):事物处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SpringBoot學習筆記(8):事物處理

快速入門

  在傳統的JDBC事務代碼開發過程中,業務代碼只有一部分,大部分都是與JDBC有關的功能代碼,比如數據庫的獲取與關閉以及事務的提交與回滾、大量的try..catch..finally語句。

  Spring Boot利用AOP為我們提供了一個數據庫事務的約定流程。通過這個約定流程就可以減少大量的冗余代碼和一些沒必要的異常捕獲語句,讓開發者更加集中于業務的開發,而不是反復編寫如數據庫的獲取與關閉以及事務的提交與回滾、大量的try..catch..finally語句等。即只要我們遵循約定,就可以把自己開發的代碼織入約定的流程中

  下圖為Spring數據庫事務約定:

  

聲明式事務

  通過使用@Transactional標注告訴Spring在什么地方啟用數據庫事務功能。這個注解可以標注在類或者方法上,標注在類上表示這個類所有功能非靜態的方法都啟用事務功能

  在Spring Boot中,當我們使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依賴的時候,框架會自動默認分別注入DataSourceTransactionManager或JpaTransactionManager。所以我們不需要任何額外配置就可以用@Transactional注解進行事務的使用。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency>

?

示例

添加注解1:@EnableTransactionManagement啟動事物管理器

@SpringBootApplication @EnableTransactionManagement public class MsSupplyAndSaleApplication {public static void main(String[] args) {SpringApplication.run(MsSupplyAndSaleApplication.class, args);} }

添加注解2:@Transaction在方法或類上啟動事物處理

@Service public class GoodsService {@Autowiredprivate GoodsMapper goodsMapper;@Transactionalpublic void addGoods(Goods goods){goodsMapper.addGoods(goods);}//.... }

?

隔離級別

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

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

指定事物的隔離級別:

@Transactional(isolation = Isolation.DEFAULT)

傳播行為

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

  • REQUIRED:如果當前存在事務,則加入該事務;如果當前沒有事務,則創建一個新的事務。
  • SUPPORTS:如果當前存在事務,則加入該事務;如果當前沒有事務,則以非事務的方式繼續運行。
  • MANDATORY:如果當前存在事務,則加入該事務;如果當前沒有事務,則拋出異常。
  • REQUIRES_NEW:創建一個新的事務,如果當前存在事務,則把當前事務掛起。
  • NOT_SUPPORTED:以非事務方式運行,如果當前存在事務,則把當前事務掛起。
  • NEVER:以非事務方式運行,如果當前存在事務,則拋出異常。
  • NESTED:如果當前存在事務,則創建一個事務作為當前事務的嵌套事務來運行;如果當前沒有事務,則該取值等價于REQUIRED。

指定事物的傳播行為:

@Transactional(propagation = Propagation.REQUIRED)

  

轉載于:https://www.cnblogs.com/MrSaver/p/8723559.html

總結

以上是生活随笔為你收集整理的SpringBoot学习笔记(8):事物处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品极品视频免费观看 | 夜夜骑夜夜操 | 最近中文字幕免费 | 污污在线免费观看 | 青青草午夜| 中文字幕在线播放视频 | 黄色网战在线观看 | 免费国产一区二区 | 91手机视频 | 日韩视频h | 成人h视频在线观看 | 亚洲精品视频网址 | 日韩免费av一区 | 亚洲黄色免费观看 | 国产九九热 | 性欧美18一19性猛交 | 激情五月俺也去 | 亚洲香蕉中文网 | 国产乱码精品一区二区三区精东 | 91网页入口 | 日韩久久影视 | 亚洲日批| 国产绳艺sm调教室论坛 | 好吊妞视频一区二区三区 | 精品1区2区3区 | 亚洲欧美日韩偷拍 | 欧美性生交xxxxxdddd | 美国做爰xxxⅹ性视频 | 日日操日日 | 欧美日韩一区不卡 | 黄视频在线免费看 | 成人亚洲区 | 国产一级片免费播放 | 777午夜| 亚洲福利小视频 | 永久免费无码av网站在线观看 | 日本极品喷水 | 国产ts三人妖大战直男 | 日韩三级久久 | 男女猛烈无遮挡免费视频 | 亚洲精品国产欧美在线观看 | 国产a区| 色爽黄 | 蜜桃久久久 | 久久新网址 | 污污污污污污www网站免费 | 国产妇女视频 | 亚洲欧美一区二区三区 | 久久久久久蜜桃 | 嫩草影院在线观看视频 | 久久国产精品影院 | 欧美一级做 | 黄色小网站在线观看 | 久久久久亚洲av无码a片 | 中文字幕av一区二区三区 | 毛片在线播放视频 | 欧美日韩国产不卡 | 久久亚洲国产成人精品性色 | 超碰h | 亚洲AV无码久久精品国产一区 | 亚洲视频免费播放 | 怡红院av久久久久久久 | jizz黑人 | 黑人乱码一区二区三区av | 免费人成又黄又爽又色 | 2023国产精品 | 看污片网站| 欧美三根一起进三p | 爱爱视频网站 | 日本一区二区在线看 | 欧美三级久久久 | 91亚洲精品一区 | 日女人免费视频 | a级黄色录像 | 亚洲另类一区二区 | 亚洲欧美精品午睡沙发 | 黄色三级免费 | 色婷婷免费 | 你懂的日韩 | 中文字幕在线永久 | 久久青青视频 | 国产福利一区视频 | 久久久久女人精品毛片九一 | 黑人极品videos精品欧美裸 | 国产精品18久久久久久久久 | 暖暖av在线 | 美女扒开腿让男生桶 | www.欧美在线观看 | 亚洲色图图片区 | 色又色| 风韵少妇spa私密视频 | 亚洲成人aa| 欧美成人黄色小视频 | 金鱼妻日剧免费观看完整版全集 | 嫩草在线观看 | 青青草av在线播放 | 精品国产av一区二区三区 | 97香蕉超级碰碰久久免费软件 | 一区二区视频免费看 |