簡單說說spring的事務機制,以及是如何管理的?


事務管理可以幫助我們保證數據的一致性,對應企業的實際應用很重要。

Spring的事務機制包括聲明式事務編程式事務。

編程式事務管理:Spring推薦使用TransactionTemplate實際開發中使用聲明式事務較多。

聲明式事務管理:將我們從復雜的事務處理中解脫出來,獲取連接,關閉連接、事務提交、回滾、異常處理等這些操作都不用我們處理了,Spring都會幫我們處理。

聲明式事務管理使用了AOP面向切面編程實現的,本質就是在目標方法執行前后進行攔截。在目標方法執行前加入或創建一個事務,在執行方法執行后,根據實際情況選擇提交或是回滾事務。

如何管理的:

Spring事務管理主要包括3個接口,Spring的事務主要是由他們三個共同完成的。

1)PlatformTransactionManager:事務管理器--主要用於平台相關事務的管理

 主要有三個方法:commit  事務提交;

      rollback  事務回滾;

      getTransaction  獲取事務狀態。

2)TransactionDefinition:事務定義信息--用來定義事務相關的屬性,給事務管理器PlatformTransactionManager使用

這個接口有下面四個主要方法:

getIsolationLevel:獲取隔離級別;

getPropagationBehavior:獲取傳播行為;

getTimeout:獲取超時時間;

isReadOnly:是否只讀(保存、更新、刪除時屬性變為false--可讀寫,查詢時為true--只讀)

事務管理器能夠根據這個返回值進行優化,這些事務的配置信息,都可以通過配置文件進行配置。

3)TransactionStatus:事務具體運行狀態--事務管理過程中,每個時間點事務的狀態信息。

例如它的幾個方法:

hasSavepoint():返回這個事務內部是否包含一個保存點,

isCompleted():返回該事務是否已完成,也就是說,是否已經提交或回滾

isNewTransaction():判斷當前事務是否是一個新事務

 

聲明式事務的優缺點:

優點

不需要在業務邏輯代碼中編寫事務相關代碼,只需要在配置文件配置或使用注解(@Transaction),這種方式沒有侵入性。

缺點

聲明式事務的最細粒度作用於方法上如果像代碼塊也有事務需求,只能變通下,將代碼塊變為方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM