Java面試題-13Spring

1、事務管理

spring事務分爲編程式事務和聲明式事務

Spring事務管理器的行爲的重要組成部分。下面是對這些屬性的簡要解釋:

1. **value**:用於指定事務管理器的名稱。如果應用中只有一個事務管理器,通常可以省略該屬性。

2. **propagation**:指定事務的傳播機制,即在多個事務方法相互調用時事務的行爲。常用的傳播機制包括:
- REQUIRED:如果當前沒有事務,就新建一個事務;如果已經存在一個事務中,加入到這個事務中。
- REQUIRES_NEW:每次都新建一個事務,如果當前存在事務,則掛起當前事務。
- SUPPORTS:如果當前有事務,則加入事務;如果當前沒有事務,則以非事務的方式執行。
- MANDATORY:必須在一個已有的事務中執行,否則拋出異常。
- NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,則掛起該事務。
- NEVER:以非事務方式執行操作,如果當前存在事務,則拋出異常。
- NESTED:如果當前存在事務,則在嵌套事務內執行;如果當前沒有事務,則新建一個事務。

3. **isolation**:指定事務的隔離級別,即多個事務同時執行時各自操作數據的可見性和影響。常用的隔離級別包括:
- DEFAULT:使用數據庫默認的隔離級別。
- READ_UNCOMMITTED:最低的隔離級別,允許一個事務讀取另一個事務尚未提交的數據。
- READ_COMMITTED:允許一個事務讀取另一個事務已經提交的數據,避免了髒讀取。
- REPEATABLE_READ:確保一個事務不會讀取另一個事務已提交的新數據,防止不可重複讀。
- SERIALIZABLE:最高的隔離級別,通過對數據進行鎖定來保證事務的完全隔離。

4. **timeout**:指定事務的超時時間,單位爲秒。超過該時間限制但事務尚未完成,則自動回滾事務。默認值爲-1,表示沒有超時限制。

5. **readOnly**:指定事務是否爲只讀事務。如果設置爲 true,表示只讀取數據而不進行寫操作,可以幫助數據庫優化性能。

6. **rollbackFor**:指定需要回滾事務的異常類型。如果方法拋出指定類型的異常,則事務會回滾。

7. **noRollbackFor**:指定不需要回滾事務的異常類型。如果方法拋出指定類型的異常,則事務不會回滾。

這些屬性可以根據具體業務需求進行靈活配置,以達到最佳的事務管理效果。

 

 

 

11111

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章