1. 程式人生 > 其它 >Spring中的事務是如何實現的?

Spring中的事務是如何實現的?

Spring中的事務是如何實現的?

  1. Spring事務底層是基於資料庫事務和AOP機制的。

  2. 首先對於使用了@Transactional註解的Bean,Spring會建立一個代理物件作為Bean。

  3. 當呼叫代理物件的方法時, 會先判斷該方法上是否加了@Transactional註解

  4. 如果加了,那麼則利用事務管理器建立一個數據庫連線

  5. 並且修改資料庫連線的autocommit屬性為false, 禁止此連線的自動提交, 這是實現Spring事務非常重要的一步。

  6. 然後執行當前方法,方法中會執行sql

  7. 執行完當前方法後,如果沒有出現異常就直接提交事務。

  8. 如果出現了異常,並且這個異常是需要回滾的就會回滾事務,否則仍然提交事務。

  9. Spring事務的隔離級別對應的就是資料庫的隔離級別。

  10. Spring事務的傳播機制是Spring事務自己實現的,也是Spring事務中最複雜的

  11. Spring事務的傳播機制是基於資料庫連線來做的,一個數據庫連線一個事務, 如果傳播機制配置為需要新開一個事務,那麼實際上就是先建立一個數據庫連線, 在此新資料庫連線上執行sql