基於XML的宣告式事務控制

2021-10-06 12:54:58 字數 2665 閱讀 4090

完整配置示例

由於事務控制基於aop,所以要匯入xml命名空間和約束xmlns:aop

還要匯入事務的命名空間與約束xmlns:tx

xmlns

=""xmlns:xsi

=""xmlns:aop

=""xmlns:tx

=""xsi:schemalocation="

">

<

tx:adviceid=

"txadvice"

transaction-manager

="transactionmanager"

>

tx:advice

>

通過上面的配置,事務的通知物件已經被指定,現在,只需要將事務的通知物件與切入點聯絡起來,就構成了切面。

<

aop:config

>

<

aop:pointcutid=

"txpointcut"

expression

="execution(* com.test.service.*.*(..))"

/>

<

aop:advisor

advice-ref

="txadvice"

pointcut-ref

="txpointcut"

>

aop:advisor

>

aop:config

>

<

tx:adviceid=

"txadvice"

transaction-manager

="transactionmanager"

>

<

tx:attributes

>

<

tx:method

name

="transfer"

isolation="

" no-rollback-for="

" propagation="

" read-only="

" rollback-for="

" timeout="

"/>

tx:attributes

>

tx:advice

>

屬性介紹

事務屬性設定示例

上面的例子表示,對於以get開頭的方法(查詢方法),都是唯讀的,事務的傳播行為是supports,表示可以有事務,也可以沒有(取決於具體的實現)

對於除了查詢的任意方法(*通配優先順序沒有get*高),都不是唯讀的,並且一定有事務。

"transactionmanager"

class

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

>

name

="datasource"

ref="datasource"

>

property

>

bean

>

<

tx:adviceid=

"txadvice"

transaction-manager

="transactionmanager"

>

<

tx:attributes

>

<

tx:method

name

="*"

read-only

="false"

propagation

="required"

>

tx:method

>

<

tx:method

name

="get*"

read-only

="true"

propagation

="supports"

>

tx:method

>

tx:attributes

>

tx:advice

>

<

aop:config

>

<

aop:pointcutid=

"txpointcut"

expression

="execution(* com.test.service.*.*(..))"

/>

<

aop:advisor

advice-ref

="txadvice"

pointcut-ref

="txpointcut"

>

aop:advisor

>

aop:config

>

spring基於XML的宣告式事務控制

首先再我們的ioc容器中配置事務管理器的bean物件 然後給事務管理器中注入資料來源 然後配置事務通知,此時我們需要重新匯入事務的約束,因為一開始我們沒有匯入aop和tx的約束 配置事務通知的標籤 id屬性標識給事務通知起乙個唯一標準 transaction manager屬性用於給事務通知提供乙個...

spring中基於xml的宣告式事務控制配置步驟

配置事務管理器 配置事務的通知 txadvice transaction manager transactionmanager tx advice 配置aop 配置切入點表示式 pt01 expression execution net.togogo.service.impl.aop config ...

基於XML配置宣告式事務

xml version 1.0 encoding utf 8 xmlns xsi xmlns context xmlns tx xmlns aop xsi schemalocation spring beans.xsd spring tx.xsd 掃瞄包 package com.lwt contex...