日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
面試突擊:SpringBoot 中如何操作事務(wù)?

在 Spring Boot 中操作事務(wù)有兩種方式:編程式事務(wù)或聲明式事務(wù),接下來我們一起來看二者的具體實(shí)現(xiàn)。

1.編程式事務(wù)

在 Spring Boot 中實(shí)現(xiàn)編程式事務(wù)又有兩種實(shí)現(xiàn)方法:

  • 使用 TransactionTemplate 對(duì)象實(shí)現(xiàn)編程式事務(wù);
  • 使用更加底層的 TransactionManager 對(duì)象實(shí)現(xiàn)編程式事務(wù)。

它們的具體實(shí)現(xiàn)代碼如下。

1.1 TransactionTemplate 使用

要使用 TransactionTemplate 對(duì)象需要先將 TransactionTemplate 注入到當(dāng)前類中 ,然后再使用它提供的 execute 方法執(zhí)行事務(wù)并返回相應(yīng)的執(zhí)行結(jié)果,如果程序在執(zhí)行途中出現(xiàn)了異常,那么就可以使用代碼手動(dòng)回滾事務(wù),具體實(shí)現(xiàn)代碼如下:

1.2 TransactionManager 使用

TransactionManager 實(shí)現(xiàn)編程式事務(wù)相對(duì)麻煩一點(diǎn),它需要使用兩個(gè)對(duì)象:TransactionManager 的子類,加上 TransactionDefinition 事務(wù)定義對(duì)象,再通過調(diào)用 TransactionManager 的 getTransaction 獲取并開啟事務(wù),然后調(diào)用 TransactionManager 提供的 commit 方法提交事務(wù),或使用它的另一個(gè)方法 rollback 回滾事務(wù),它的具體實(shí)現(xiàn)代碼如下:

從上述代碼可以看出,使用編程式事務(wù)更加靈活,但寫法比較麻煩。

2.聲明式事務(wù)

聲明式事務(wù)的實(shí)現(xiàn)比較簡(jiǎn)單,只需要在方法上或類上添加 @Transactional 注解即可,當(dāng)加入了 @Transactional 注解就可以實(shí)現(xiàn)在方法執(zhí)行前,自動(dòng)開啟事務(wù);在方法成功執(zhí)行完,自動(dòng)提交事務(wù);如果方法在執(zhí)行期間,出現(xiàn)了異常,那么它會(huì)自動(dòng)回滾事務(wù)。

它的具體使用如下:

當(dāng)然,@Transactional 支持很多參數(shù)的設(shè)置,它的參數(shù)設(shè)置列表如下:

參數(shù)的設(shè)置方法如下:

總結(jié)

本文我們介紹了兩種事務(wù)的實(shí)現(xiàn)方式:編程式事務(wù)或聲明式事務(wù)。其中編程式事務(wù)又分為兩種實(shí)現(xiàn):使用 TransactionTemplate 對(duì)象或更加底層的 TransactionManager 對(duì)象分別實(shí)現(xiàn)編程式事務(wù),它們的優(yōu)點(diǎn)是靈活性更高,可以在任何代碼片段上添加事務(wù);而聲明式事務(wù)的實(shí)現(xiàn)更加簡(jiǎn)單,只需要在類或方法上添加 @Transactional 注解即可實(shí)現(xiàn)事務(wù)的自動(dòng)開啟和提交(以及回滾)。


文章名稱:面試突擊:SpringBoot 中如何操作事務(wù)?
轉(zhuǎn)載源于:http://m.5511xx.com/article/ccdssej.html