Java?SpringBoot?中的操作事務(wù)
前言:
在 Spring Boot 中操作事務(wù)有兩種方式:編程式事務(wù)或聲明式事務(wù),接下來我們一起來看二者的具體實現(xiàn)。
1.編程式事務(wù)
在 Spring Boot 中實現(xiàn)編程式事務(wù)又有兩種實現(xiàn)方法:
- 使用 TransactionTemplate 對象實現(xiàn)編程式事務(wù);
- 使用更加底層的 TransactionManager 對象實現(xiàn)編程式事務(wù)。
它們的具體實現(xiàn)代碼如下。
1.1 TransactionTemplate 使用
要使用 TransactionTemplate 對象需要先將 TransactionTemplate 注入到當前類中 ,然后再使用它提供的 execute 方法執(zhí)行事務(wù)并返回相應(yīng)的執(zhí)行結(jié)果,如果程序在執(zhí)行途中出現(xiàn)了異常,那么就可以使用代碼手動回滾事務(wù),
具體實現(xiàn)代碼如下:

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

從上述代碼可以看出,使用編程式事務(wù)更加靈活,但寫法比較麻煩。
2.聲明式事務(wù)
聲明式事務(wù)的實現(xiàn)比較簡單,只需要在方法上或類上添加 @Transactional 注解即可,當加入了 @Transactional 注解就可以實現(xiàn)在方法執(zhí)行前,自動開啟事務(wù);在方法成功執(zhí)行完,自動提交事務(wù);如果方法在執(zhí)行期間,出現(xiàn)了異常,那么它會自動回滾事務(wù)。
它的具體使用如下:

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

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

總結(jié)
本文我們介紹了兩種事務(wù)的實現(xiàn)方式:編程式事務(wù)或聲明式事務(wù)。其中編程式事務(wù)又分為兩種實現(xiàn):使用 TransactionTemplate 對象或更加底層的 TransactionManager 對象分別實現(xiàn)編程式事務(wù),它們的優(yōu)點是靈活性更高,可以在任何代碼片段上添加事務(wù);而聲明式事務(wù)的實現(xiàn)更加簡單,只需要在類或方法上添加 @Transactional 注解即可實現(xiàn)事務(wù)的自動開啟和提交(以及回滾)。
到此這篇關(guān)于Java SpringBoot 中的操作事務(wù)的文章就介紹到這了,更多相關(guān)SpringBoot 操作事務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Data JPA 簡單查詢--方法定義規(guī)則(詳解)
下面小編就為大家?guī)硪黄猄pring Data JPA 簡單查詢--方法定義規(guī)則(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
Springboot集成Proguard生成混淆jar包方式
本文介紹了兩種Java代碼混淆工具:ClassFinal和ProGuard,ClassFinal是一個字節(jié)碼加密工具,但需要額外的加密包,使用復雜,ProGuard是一款開源的Java代碼混淆工具,可以有效地提高代碼的安全性,但對Spring框架的注解處理不夠完善2024-11-11
解析SpringSecurity+JWT認證流程實現(xiàn)
這篇文章主要介紹了解析SpringSecurity+JWT認證流程實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07

