一、
spring
事務處理
1、事務的處理也交給了
spring
來管理,要在
檔案中上配置事務管理類: //
實施事務管理的
bean
class=」org.springframwork.orm.hibernate3.hibernatetransactionmanager」>
它是通過
sessionfactory
來管理,因此在傳進來乙個
sessionfactory
來接管事務處理。 1、
宣告式事務處理: 在
spring
中對事務進行管理時,可以顯示地進行事務處理的定義: //
給事務新增的屬性
//propagation
表示的是事務的傳播特性,使用
required
時,是當檢測到
add開頭的方法時,就看此時有沒有開啟的事務,如果有則將方法放進事務中去,如果沒有,則新建乙個事務。然後將方法放進去。
//如果檢測到其它的方法,則給其唯讀資料庫的屬性。即當本方法在讀時,其它的方法不能再去寫了。保證乙個事務的完整性。
對於事務的其它傳播屬性,則可以參考其它文件進行相關的了解。
上乙個配置是針對於所有包中類的事務處理方法的設定。下面一段是
的定義,它確保由
'txadvice'
bean
定義的事務通知在應用中合適的點被執行。首先我們定義了
乙個切面,它匹配
hibernatedao
介面定義的所有操作,我們把該切面叫做
'allmanagermethod'
。然後我們用乙個通知器(
advisor
)把這個切面與
'txadvice'
繫結在一起,表示當
'allmanagermethod'
執行時,'txadvice'
定義的通知事務邏輯將被執行。這就是
aop切面工程:
expression=」execution(*com.hejianjiao.hibernate.hibernatedao.*(..))」/>
//呼叫上面配置的事務屬性,可以將它給本
aop pointcut
。 //
如果還有其它的定義,則可以再加上
pointcut
、advisor
來定義本切面點的事務邏輯。
//expression
中的內容是要執行本切面的乙個介面,中的所有方法:如:乙個介面中定義了運算元據的方法:
com.hejianjiao.hibernate.hibernatedao
,則下面
execution
括號中的內容就為:
* com.hejianjiao.hibernate.hibernatedao.*(..)
。而如果在
com.hejianjiao.hibernate
包中還有其它的類也有操作方法,我們要一起定義的話,就可以寫為:
*com.hejianjiao.*.*(..)
,其中(..)
表示的是方法,前面的第乙個
*是操作的介面或者類。
上面的配置將為由
'hibernatedao'
定義的bean
建立乙個**物件,這個**物件被裝配了事務通知,所以當它的相應方法被呼叫時,乙個事務將被啟動、掛起、被標記為唯讀,或者其它(根據該方法所配置的事務語義)。 3
、程式設計式事務處理:
這個方法是使用注入的方式來對事務進行限制操作,使用
transactiontemplate
、platformtransactionmanager
類進行方法的限制。 1、
第一種方式使用
transactiontemplate類
2、第二種方是式是使用
platformtransactionmanager
類
spring事務處理
xml 實施事務管理的bean bean id transactionmanager class org.springframwork.orm.hibernate3.hibernatetransactionmanager property name sessionfactory refbean se...
spring事務處理
一.spring事務分為宣告式事務和程式設計式事務 二 程式設計式事務可以作用在 庫,示例 autowired private org.springframework.jdbc.datasource.datasourcetransactionmanager transactionmanager pu...
spring事務處理
一 spring 事務處理 1 事務的處理也交給了spring 檔案中上配置事務管理類 實施事務管理的bean class org.springframwork.orm.hibernate3.hibernatetransactionmanager 它是通過sessionfactory 來管理,因此在...