1. 程式人生 > >【Spring】——事務實現過程及原理

【Spring】——事務實現過程及原理

1Spring中事務處理的作用:

Spring事務處理,是將事務處理的工作統一起來,併為事務處理提供通用的支援。

2工作原理及實現

a劃分處理單元——IOC

由於spring解決的問題是對單個數據庫進行區域性事務處理的,具體的實現首相用spring中的IOC劃分了事務處理單元。並且將對事務的各種配置放到了ioc容器中(設定事務管理器,設定事務的傳播特性及隔離機制)。

bAOP攔截需要進行事務處理的類

Spring事務處理模組是通過AOP功能來實現宣告式事務處理的,具體操作(比如事務實行的配置和讀取,事務物件的抽象),用TransactionProxyFactoryBean

介面來使用AOP功能,生成proxy代理物件,通過TransactionInterceptor完成對代理方法的攔截,將事務處理的功能編織到攔截的方法中。

讀取ioc容器事務配置屬性,轉化為spring事務處理需要的內部資料結構(TransactionAttributeSourceAdvisor),轉化為TransactionAttribute表示的資料物件。

c對事物處理實現(事務的生成、提交、回滾、掛起)

spring委託給具體的事務處理器實現。實現了一個抽象和適配。適配的具體事務處理器:DataSource資料來源支援、hibernate資料來源事務處理支援、JDO資料來源事務處理支援,

JPAJTA資料來源事務處理支援。這些支援都是通過設計PlatformTransactionManagerAbstractPlatforTransaction一系列事務處理的支援。

為常用資料來源支援提供了一系列的TransactionManager

d結合

PlatformTransactionManager實現了TransactionInterception介面,讓其與TransactionProxyFactoryBean結合起來,形成一個Spring宣告式事務處理的設計體系。

3應用場景

  支援不同資料來源,在底層進行封裝,可以做到事務即開即用,這樣的好處是:即使有其他的資料來源事務處理需要,

Spring也提供了一種一致的方式。