spring事務使用

  • spring的事務管理有幾種方式實現,如何實現?

            事務的實現方式:實現方式共有兩種:編碼方式;聲明式事務管理方式spring

           基於AOP技術實現的聲明式事務管理,實質就是:在方法執行先後進行攔截,而後再目標方法開始以前建立並加入事務執行完目標方法後根據執行狀況提交或回滾事務.數組

           聲明式事務管理又有兩種實現方式:基於xml配置文件的方式;另外一個實在業務方法上進行@Transaction註解,將事務規則應用到業務邏輯中。編碼

            一種常見的事務管理配置:事務攔截器TransactionInterceptor和事務自動代理BeanNameAutoProxyCreator相結合的方式。spa

 

  • 事物配置中有哪些屬性能夠配置

(1)、事務的傳播性:@Transactional(propagation=Propagation.REQUIRED) .net

      若是有事務, 那麼加入事務, 沒有的話新建一個(默認狀況下)代理

(2)、事務的超時性:@Transactional(timeout=30) //默認是30秒 xml

      注意這裏說的是事務的超時性而不是Connection的超時性,這兩個是有區別的blog

(3)、事務的隔離級別:@Transactional(isolation = Isolation.READ_UNCOMMITTED)事務

      讀取未提交數據(會出現髒讀, 不可重複讀) 基本不使用io

(4)、回滾:

指定單一異常類:@Transactional(rollbackFor=RuntimeException.class)

指定多個異常類:@Transactional(rollbackFor={RuntimeException.class, Exception.class})

該屬性用於設置須要進行回滾的異常類數組,當方法中拋出指定異常數組中的異常時,則進行事務回滾。

(5)、只讀:@Transactional(readOnly=true)

該屬性用於設置當前事務是否爲只讀事務,設置爲true表示只讀,false則表示可讀寫,默認值爲false。

 

這種註解方式實現事務的配置以及一些屬性的定義,事務的東西還有不少要注意的事項

 

轉自:https://blog.csdn.net/rocksteadypro/article/details/79542052 

相關文章
相關標籤/搜索