Spring 宣告式事務

2021-08-29 03:06:54 字數 1675 閱讀 2633

propagation:事務傳播機制有如下幾種:

required:預設值,表示如果存在乙個事務,則支援當前事務;如果沒有事務,則開啟乙個新事務。

requires_new:表示總是開啟乙個新的事務,如果乙個事務已經存在,則將這個存在的事務掛起,開啟新事務執行該方法。

mandatory:表示如果存在乙個事務,則支援當前事務;如果當前沒有乙個活動的事務,則丟擲異常。

nested:表示如果當前存在乙個活動的事務,則建立乙個事務作為當前事務的巢狀事務執行;如果沒有當前事務,該取值與required相同。

supports:表示如果存在乙個事務,則支援當前事務;如果當前沒有事務,則按非事務方法執行。

not_supported:表示總是以非事務方式執行,如果乙個事務已經存在,則將這個存在的事務掛起,然後執行該方法。

neber:表示總是以非事務方式執行,如果當前存在乙個活動的事務,則丟擲異常。

isolation:事務隔離等級,即當前事務和其他事務的隔離程度,在併發事務處理的情況下需要考慮它的設定。

default:預設值,表示使用資料庫預設的事務隔離級別。

read_uncommitted:未提交讀。

read_committed:提交讀。

repeatable_read:可重複讀。

seroalizable:序列讀。

timeout:事務超時時間。

允許事務執行的最長時間,以秒為單位,超過指定的時間自動回滾,防止事務執行時間過長而影響系統效能。該屬性需要底層的實現支援。預設值:-1,表示不超時。

read-only:事務超時時間,允許是否為唯讀,預設值:false。

對於只用於查詢的功能事務,設定為true,能提高事務處理的效能。

rollback-for:設定能夠觸發回滾的異常型別。spring 預設只在丟擲 runtime exception 才標識事務回滾。

可以通過全限定類名自行指定需要回滾事務的異常,多個類名用英文逗號隔開。

no-rollback-for:設定不觸發回滾的異常。spring 預設 checked exception 不會觸發事務回滾。

可以通過全限定類名自行指定不需回滾事務的異常,多個類名用英文逗號隔開,設定完事務規則,最後還要定義切面,將事務規則應用到指定的方法上。

一、在spring配置檔案配置事務

二、使用註解方式實現事務:spring配置檔案新增如下**:

1、業務邏輯實現類上 新增@transactional 註解

2、方法體上 新增@transactional 註解,這個權重會比上一種大。

預設的@transactional設定:

事務傳播特性是:propagation_required

事務隔離級別是:isolation_default

事務是讀/寫

runtime exception 觸發回滾,checked exception 不觸發事務回滾。

Spring宣告式事務

net.sf.hibernate.dialect.oracle9dialect false true net.sf.hibernate.transaction.jdbctransactionfactory 1025 用heibernate來管理事務 當用spring和heibernate一起完成da...

spring宣告式事務

1.什麼是事務 事務是程式中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性 要麼成功,要麼失敗 2.事務的特性 事務特性分為四個 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durability ...

spring 宣告式事務

資料來源 bean id datasource class org.apache.commons.dbcp.basicdatasource destroy method close property name driverclassname value com.mysql.jdbc.driver p...