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

1.編程式事務
在 Spring Boot 中實現(xiàn)編程式事務又有兩種實現(xiàn)方法:
- 使用 TransactionTemplate 對象實現(xiàn)編程式事務;
- 使用更加底層的 TransactionManager 對象實現(xiàn)編程式事務。
它們的具體實現(xiàn)代碼如下。
1.1 TransactionTemplate 使用
要使用 TransactionTemplate 對象需要先將 TransactionTemplate 注入到當前類中 ,然后再使用它提供的 execute 方法執(zhí)行事務并返回相應的執(zhí)行結果,如果程序在執(zhí)行途中出現(xiàn)了異常,那么就可以使用代碼手動回滾事務,具體實現(xiàn)代碼如下:
1.2 TransactionManager 使用
TransactionManager 實現(xiàn)編程式事務相對麻煩一點,它需要使用兩個對象:TransactionManager 的子類,加上 TransactionDefinition 事務定義對象,再通過調用 TransactionManager 的 getTransaction 獲取并開啟事務,然后調用 TransactionManager 提供的 commit 方法提交事務,或使用它的另一個方法 rollback 回滾事務,它的具體實現(xiàn)代碼如下:
從上述代碼可以看出,使用編程式事務更加靈活,但寫法比較麻煩。
2.聲明式事務
聲明式事務的實現(xiàn)比較簡單,只需要在方法上或類上添加 @Transactional 注解即可,當加入了 @Transactional 注解就可以實現(xiàn)在方法執(zhí)行前,自動開啟事務;在方法成功執(zhí)行完,自動提交事務;如果方法在執(zhí)行期間,出現(xiàn)了異常,那么它會自動回滾事務。
它的具體使用如下:
當然,@Transactional 支持很多參數(shù)的設置,它的參數(shù)設置列表如下:
參數(shù)的設置方法如下:
總結
本文我們介紹了兩種事務的實現(xiàn)方式:編程式事務或聲明式事務。其中編程式事務又分為兩種實現(xiàn):使用 TransactionTemplate 對象或更加底層的 TransactionManager 對象分別實現(xiàn)編程式事務,它們的優(yōu)點是靈活性更高,可以在任何代碼片段上添加事務;而聲明式事務的實現(xiàn)更加簡單,只需要在類或方法上添加 @Transactional 注解即可實現(xiàn)事務的自動開啟和提交(以及回滾)。
分享標題:面試突擊:SpringBoot 中如何操作事務?
分享網(wǎng)址:http://m.fisionsoft.com.cn/article/ccdssej.html


咨詢
建站咨詢
