Spring配置宣告式事務控制

2021-10-10 04:02:07 字數 1712 閱讀 2641

"transactionmanager"

class

="org.springframework.jdbc.datasource.datasourcetransactionmanager"

>

name

="datasource"

ref="datasource"

>

property

>

bean

>

<

tx:adviceid=

"txmanager"

transaction-manager

="transactionmanager"

>

配置事務屬性:

isolation:事務的隔離級別。預設值是default。

propagation:事務的傳播行為。預設值是reouired,表示一定會有事務,增冊改的選擇。查詢方法可以選擇supports。

read-only:是否唯讀。只有查詢方法才能設定為true。預設值是false、表示讀寫。

timeout:事務的超時時間,預設值是-1,表示永不超時。如果指定了數值,以秒為單位。

rollback-for:用於指定乙個異常.當產生該異常時事務回滾,產生其他異常時.事務不回滾。沒有預設值。表示任何異常都回滾。

no-rollback-fon:用於指定乙個異布,當產生該異常時,事務不回滾,產生其他異常時事務回滾。沒有預設值。表示任何異常都回滾。

<

tx:attributes

>

<

tx:method

name

="*"

propagation

="required"

read-only

="false"

>

tx:method

>

<

tx:method

name

="find*"

propagation

="supports"

read-only

="true"

>

tx:method

>

tx:attributes

>

tx:advice

>

<

aop:config

>

切入點表示式:

<

aop:pointcutid=

"pt"

expression

="execution(* *..*.*(..))"

>

aop:pointcut

>

建立切入點表示式和事務通知對應關係:

<

aop:advisor

advise-ref

="txmanager"

pointcut-ref

="pt"

>

aop:advisor

>

aop:config

>

在配置類上標註,開啟對事務控制的支援,等同於下面的xml檔案配置**:

在需要事務控制的類或具體方法上標註,括號內為引數,等同於在xml配置中配置事務屬性

Spring宣告式事務控制

什麼是事務控制?與資料庫建立連線connection後,每一次的進行查詢 更新操作,如果沒有將其歸為乙個事務,則是獨立進行的。而這樣會導致一些錯誤場景的發生。經典的如銀行轉賬業務,轉出方錢減少了,期間發生了異常,對方的錢卻沒有到賬等情況 為什麼要先了解程式設計式事務?宣告式事務底層即通過程式設計式事...

spring 宣告式事務配置

用 spring 事務管理器,由spring來負責資料庫的開啟,提交,回滾.預設遇到執行期例外 throw new runtimeexception 注釋 會回滾 unchecked,需要捕獲的例外 throw new exception 注釋 不會回滾 checked.需要修改規則加入注釋 tra...

spring配置宣告式事務

1 宣告式事務配置 配置 sessionfactory 配置事務管理器 事務的傳播特性 那些類那些方法使用事務 spring事務配置在預設狀態下 只有丟擲執行時異常時才會回滾 2 編寫業務邏輯方法 繼承 hibernatedaosupport 類,使用 hibernatetemplate 來持久化,...