spring框架5 事務
事務操作(Spring 事務管理介紹)。
1、事務新增到JavaEE三層結構裡面Service層(業務邏輯層)。
2、在Spring進行事務管理操作。
(1)有兩種方式:程式設計式事務管理和宣告式事務管理(使用)。
3、宣告式事務管理。
(1)基於註解方式
(2)基於xml配置檔案方式
4、在Spring進行宣告式事務管理,底層使用AOP原理,
5、Spring 事務管理API.
(1)提供一個介面,代表事務管理器,這個介面針對不同的框架提供不同的實現類
事務操作(註解宣告式事務管理)。
1.在spring配置檔案配置事務管理器。
2、在spring配置檔案,開啟事務註解,
(1)在spring配置檔案引入名稱空間tx
(2)開啟事務註解。
3、在service 類上面(或者service類裡面方法上面)新增事務註解,
(1) @Transactional, 這個註解新增到類上面,也可以新增方法上面。
(2)如果把這個註解新增類上面,這個類裡面所有的方法都新增事務。
(3)如果把這個註解新增方法上面,為這個方法新增事務
事務操作(宣告式事務管理引數配置)。
1.在service類上面添加註解@Transactional,在這個註解裡面可以配置事務相關引數
2、propagation: 事務傳播行為。
3、ioslation: 事務隔離級別。
4、timeout: 超時時間。
5、readOnly:是否只讀。
7、noRollbackFor: 不回滾。
Spring框架事務傳播行為有7種:
REQUIRED 如果add方法本身有事務,呼叫update方法之後,update使用當前add方法裡面事務
如果add方法本身沒有事務,呼叫update方法之後,建立新事務
REQUIRED_ NEW 使用add方法呼叫update方法,如果add無論是否有事務,都建立新的事務
3、ioslation: 事務隔離級別。
(1)事務有特性成為隔離性,多事務操作之間不會產生影響。不考慮隔離性產生很多問題。
(2)有三個讀問題:髒讀、不可重複讀、虛(幻)讀
不可重複讀:
(5)虛讀:一個未提交事務讀取到另-提交事務新增資料。
(6)解決:通過設定事務隔離級別,解決讀問題。
4、timeout: 超時時間
(1)事務需要在一定時間內進行提交,如果不提交進行回滾。
(2)預設值是-1,設定時間以秒單位進行計算,
5、readOnly: 是否只讀.
(1)讀:查詢操作,寫:新增修改刪除操作。
(2) readOnly 預設值false,表示可以查詢,可以新增修改刪除操作。
(3)設定readOnly.值是true, 設定成true之後, 只能查詢。
6、rollbackFor: 回滾。
(1)設定出現哪些異常進行事務回滾。
7. noRollbackFor: 不回滾。
(1)設定出現哪些異常不進行事務回滾。
事務操作(XML宣告式事務管理)。
1、在spring配置檔案中進行配置。
第一步配置事務管理器。
第二步配置通知
第三步配置切入點和切面。
完全配置類: