"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 來持久化,...