【Spring】——事務實現過程及原理
阿新 • • 發佈:2019-02-04
1、Spring中事務處理的作用:
Spring事務處理,是將事務處理的工作統一起來,併為事務處理提供通用的支援。
2、工作原理及實現
a、劃分處理單元——IOC
由於spring解決的問題是對單個數據庫進行區域性事務處理的,具體的實現首相用spring中的IOC劃分了事務處理單元。並且將對事務的各種配置放到了ioc容器中(設定事務管理器,設定事務的傳播特性及隔離機制)。
b、AOP攔截需要進行事務處理的類
Spring事務處理模組是通過AOP功能來實現宣告式事務處理的,具體操作(比如事務實行的配置和讀取,事務物件的抽象),用TransactionProxyFactoryBean
讀取ioc容器事務配置屬性,轉化為spring事務處理需要的內部資料結構(TransactionAttributeSourceAdvisor),轉化為TransactionAttribute表示的資料物件。
c、對事物處理實現(事務的生成、提交、回滾、掛起)
spring委託給具體的事務處理器實現。實現了一個抽象和適配。適配的具體事務處理器:DataSource資料來源支援、hibernate資料來源事務處理支援、JDO資料來源事務處理支援,
為常用資料來源支援提供了一系列的TransactionManager。
d、結合
PlatformTransactionManager實現了TransactionInterception介面,讓其與TransactionProxyFactoryBean結合起來,形成一個Spring宣告式事務處理的設計體系。
3、應用場景
支援不同資料來源,在底層進行封裝,可以做到事務即開即用,這樣的好處是:即使有其他的資料來源事務處理需要,