技術複習-Spring事務

spring事務

1.事務傳播機制

在spring中事務存在嵌套的狀況,在這種狀況下事務如何協調,spring在TransactionDefinition中設了七個規則,被稱做事務的傳播機制spring

1.TransactionDefinition.PROPAGATION_REQUIRED
若是當前存在事務,則加入該事務中,當前不存在事務,新建事務

2.TransactionDefinition.PROPAGATION_REQUIRES_NEW
當前存在掛起當前事務,新建事務,當前不存在事務,新建事務。新建的事務不受外層事務無關。

3.TransactionDefinition.PROPAGATION_SUPPORTS
當前存在事務,則加入事務中,當前不存在事務,則非事務的方式運行。

4.TransactionDefinition.PROPAGATION_NOT_SUPPORTS
以非事務的方式運行。若是當前存在事務則將當前事務掛起。

5.TransactionDefinition.PROPERGATION_NEVER
以非事務的方式運行,若是存在事務則拋出異常。

6.TransactionDefinition.PROPERGATION_MANDATORY
當前存在事務則加入事務,當前不存在事務,拋出異常

7.TransactionDefinition.PROPAGATION_NESTED
存在事務,則做爲嵌套事務,不存在事務,則新建事務。

2.Spring管理類

  • PlatformTransactionManager Spring事務管理接口 定義了三個接口:getconnection、commit、rollback數據庫

  • DataSourceTransactionManager 具體的JDBC事務管理類 實現了PlatformTransactionManager的三個接口,具體關於數據庫事務管理交給DataSource通常狀況下咱們用ibatis用這個管理類便可。code

  • HibernateTransactionManager 具體的Hibernate事務管理類orm

  • TransactionDefinition 事務屬性類 定義了事務的隔離級別和傳播機制等常量接口

  • TransactionStatus 事務狀態信息 保存了Transaction、TransactionDefinition等信息事務

比較好的總結文章:https://www.jianshu.com/p/3ee9dd1857afget

相關文章
相關標籤/搜索