spring 宣告式事務配置

2021-09-01 07:54:40 字數 1551 閱讀 8718

用 spring 事務管理器,由spring來負責資料庫的開啟,提交,回滾.預設遇到執行期例外

(throw new runtimeexception("注釋");)會回滾:unchecked,需要捕獲的例外(throw

new exception("注釋");)不會回滾:checked.

需要修改規則加入注釋:

@transactional(rollbackfor=exception.class) //指定回滾,需要捕獲的例外(throw

new exception("注釋");)不會回滾

public void methodname()

@transactional(norollbackfor=exception.class)//指定不回滾,遇到執行期例外

(throw new runtimeexception("注釋");)會回滾

public itimdaoimpl getitemdaoimpl()

//事務傳播屬性

@transactional(propagation=propagation.required) //如果有事務,那麼加入事

務,沒有的話新建乙個(不寫的情況下)

@transactional(propagation=propagation.not_supported) //容器不為這個方法

開啟事務

@transactional(propagation=propagation.requires_new) //不管是否存在事務,

都建立乙個新的事務,原來的掛起,新的執行完畢,繼續執行老的事務

@transactional(propagation=propagation.mandatory) //必須在乙個已有的事務中

執行,否則丟擲異常

@transactional(propagation=propagation.never) //必須在乙個沒有的事務中執

行,否則丟擲異常(與propagation.mandatory相反)

@transactional(propagation=propagation.supports) //如果其他bean呼叫這個方

法,在其他bean中宣告事務,那就用事務.如果其他bean沒有宣告事務,那就不用事務.

/*public void methodname()

other失敗了不會影響 本類的修改提交成功

本類update的失敗,other也失敗

*/@transactional(propagation=propagation.nested)

@transactional (propagation =

propagation.required,readonly=true) //readonly=true唯讀,不能更新,刪除

@transactional (propagation = propagation.required,timeout=30)//設定超時時間

@transactional (propagation =

propagation.required,isolation=isolation.default)//設定資料庫隔離級別

spring配置宣告式事務

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

Spring註解宣告式事務配置

一 引入命名空間 二 具有 transactional 註解的bean 自動配置為宣告式事務支援 bean id transactionmanager class org.springframework.orm.hibernate3.hibernatetransactionmanager prope...

Spring配置宣告式事務控制

transactionmanager class org.springframework.jdbc.datasource.datasourcetransactionmanager name datasource ref datasource property bean tx adviceid txm...