spring事務處理

2021-06-07 17:04:47 字數 2210 閱讀 1124

xml** 

//實施事務管理的bean 

<

bean

id=」transactionmanager」  

class=」org.springframwork.orm.hibernate3.hibernatetransactionmanager」>

<

property

name=」sessionfactory」>

<

refbean=」sessionfactory」 />

property

>

bean

>

它是通過sessionfactory來管理,因此在傳進來乙個sessionfactory來接管事務處理。

2、 宣告式事務處理:

在spring中對事務進行管理時,可以顯示地進行事務處理的定義:

xml** 

//給事務新增的屬性 

<

tx:advice

id=」txadvice」 transaction-manager=」transactionmanager」>

<

tx:attributes

>

//propagation表示的是事務的傳播特性,使用required時,是當檢測到add開頭的方法時,就看此時有沒有開啟的事務,如果有則將方法放進事務中去,如果沒有,則新建乙個事務。然後將方法放進去。 

<

tx:method

name=」add*」 propagation=」required」>

<

tx:method

name=」delete*」 propagation=」required」>

<

tx:method

name=」update*」 propagation=」required」>

//如果檢測到其它的方法,則給其唯讀資料庫的屬性。即當本方法在讀時,其它的方法不能再去寫了。保證乙個事務的完整性。 

<

tx:method

name=」*」 read-only=」true」>

tx:attributes

>

tx:advice

>

對於事務的其它傳播屬性,則可以參考其它文件進行相關的了解。

上乙個配置是針對於所有包中類的事務處理方法的設定。下面一段是的定義,它確保由 'txadvice' bean定義的事務通知在應用中合適的點被執行。首先我們定義了 乙個切面,它匹配 hibernatedao 介面定義的所有操作,我們把該切面叫做 'allmanagermethod'。然後我們用乙個通知器(advisor)把這個切面與 'txadvice' 繫結在一起,表示當 'allmanagermethod' 執行時,'txadvice' 定義的通知事務邏輯將被執行。這就是aop切面工程:

xml** 

<

aop:config

>

<

aop:pointcut

id=」allmanagermethod」  

expression=」execution(*  com.hejianjiao.hibernate.hibernatedao.*(..))」/>

//呼叫上面配置的事務屬性,可以將它給本aop pointcut。 

<

aop:advisor

advice-ref=」txadvice」 pointcut-ref=」allmanagermethod」/>

//如果還有其它的定義,則可以再加上pointcut、advisor來定義本切面點的事務邏輯。 

aop:config

>

//expression中的內容是要執行本切面的乙個介面,中的所有方法:如:乙個介面中定義了運算元據的方法:com.hejianjiao.hibernate.hibernatedao,則下面execution括號中的內容就為:* com.hejianjiao.hibernate.hibernatedao.*(..)。而如果在com.hejianjiao.hibernate包中還有其它的類也有操作方法,我們要一起定義的話,就可以寫為:*  com.hejianjiao.*.*(..),其中(..)表示的是方法,前面的第乙個*是操作的介面或者類。

上面的配置將為由 'hibernatedao' 定義的bean建立乙個**物件,這個**物件被裝配了事務通知,所以當它的相應方法被呼叫時,乙個事務將被啟動、掛起、被標記為唯讀,或者其它(根據該方法所配置的事務語義)。

spring事務處理

一 spring 事務處理 1 事務的處理也交給了 spring 來管理,要在 檔案中上配置事務管理類 實施事務管理的 bean class org.springframwork.orm.hibernate3.hibernatetransactionmanager 它是通過 sessionfacto...

spring事務處理

一.spring事務分為宣告式事務和程式設計式事務 二 程式設計式事務可以作用在 庫,示例 autowired private org.springframework.jdbc.datasource.datasourcetransactionmanager transactionmanager pu...

spring事務處理

一 spring 事務處理 1 事務的處理也交給了spring 檔案中上配置事務管理類 實施事務管理的bean class org.springframwork.orm.hibernate3.hibernatetransactionmanager 它是通過sessionfactory 來管理,因此在...