一. springmvc註解事務
之前一直有用事務,但是之前都只算使用。今天有才有空深入了解一下事務的配置使用。本人比較懶(哈哈哈),就先從懶人比較中意的註解事務開始吧。
怕有新手上路,所以spring.xml 和spring-mvc.xml都放出來
spring-mvc.xml
<?xml version="1.0" encoding="utf-8"?>
spring.xml
<?xml version="1.0" encoding="utf-8"?>
然後在就是在service實現中新增註解了,在我這裡就是上面的 com.zm.transaction.service.impl.userserviceimpl類,
@transactional
有兩種用法:
(1)把這個註解放在類名稱上面了,這樣你配置的這個@transactional 對這個類中的所有public方法都起作用.
(2)@transactional 方法方法名上,只對這個方法有作用,同樣必須是public的方法
我是使用在方法上註解的,並且使用了異常回滾。當insertuser成功時丟擲異常,不執行insertrole。但是查詢資料庫insertuser插入的資料也被回滾了。
//@service("userservice")沒有手動配置
public class userserviceimpl implements userservice
}
@transactional還有其他的功能
超時:
@transactional(timeout=30) //預設是30秒
異常回滾:
指定單一異常類:@transactional(rollbackfor=runtimeexception.class)
指定多個異常類:@transactional(rollbackfor=)
該屬性用於設定需要進行回滾的異常類陣列,當方法中丟擲指定異常陣列中的異常時,則進行事務回滾。
正常的情況下也可以回滾:
transactionaspectsupport.currenttransactionstatus().setrollbackonly();
唯讀:
@transactional(readonly=true)
該屬性用於設定當前事務是否為唯讀事務,設定為true表示唯讀,false則表示可讀寫,預設值為false。
二.非註解事務配置
其實非註解事務只要在spring.xml裡把配置改一下就行了,重複的配置就不在展示了,下面是需要改動
<?xml version="1.0" encoding="utf-8"?>
用過一種再是用另一種是不是很快上手,我就寫這麼多了,如果有什麼錯誤歡迎批評指正。 spring mybatis事務不回滾
對spring,mybatis進行整合時發現事務不能進行回滾處理,上網查了很多資料依舊還沒解釋,很多都是說要丟擲乙個runtimeexception才能回滾的,但嘗試過多種還不能,如下 classpath jdbc.properties bolgservice bolgflowservice 檢視資...
spring mybatis純註解版事務開發。
package domain import dao.userdao import entity.user import org.springframework.beans.factory.annotation.autowired import org.springframework.stereoty...
spring mybatis讀寫分離
一 配置定義資料庫連線屬性 二 定義bean 三 事務定義 四 配置外掛程式 五 編寫動態資料來源類 public class dynamicdatasource extends abstractroutingdatasource setdefaulttargetdatasource writeda...