springboot項目事務標簽驗證
1、問題描述
springboot項目中配置事務,以前通過標簽用過,上個內部項目,因為是在別人代碼中使用了,發(fā)現好像沒起作用(然后因為有框架保證,就沒計較了),新啟動項目又用到,驗證了下,springboot項目下配置兩個標簽就可以了。
2、解決方案
2.1 說明
(1)其實就兩個標簽,一個用到啟動類中(@EnableTransactionManagement),另一個就是那里需要就配置到哪里(@Transactional);
(2)方案,就隨便找了個以前的測試項目,一個方法中包含:保存一條數據到數據庫中和一個1除以0代碼,然后看下加不加事務標簽有什么區(qū)別;
2.2 代碼說明
(1)controller類
@ResponseBody
@GetMapping("/tstest")
public String tstest() {
this.userService.tstest();
return "SUCCESS";
}
(2)service類
public void tstest() {
//保存
UserEntity userEntity = new UserEntity();
userEntity.setType(0);
userEntity.setOpenid("1111");
insert(userEntity);
//報錯,回滾
int i = 1/0;
System.out.println(i);
}
2.3 驗證1,沒有事務
不加事務標簽,代碼如上。
(1)先清空數據庫;
(2)執(zhí)行tstest請求;

發(fā)現insert代碼行執(zhí)行完,數據就存到數據庫中了。

接著執(zhí)行完成(1/0),雖然報錯代碼報錯,但是數據庫中數據還是存在的,數據沒有回滾,沒有保持一致性。

2.4 驗證2,有事務
(1)增加兩個標簽,一個是啟動類方法上,一個是tstest方法上。


(2)首先清除數據,執(zhí)行到insert處

發(fā)現雖然insert代碼行執(zhí)行完成了,但是這時候數據庫中并沒有數據,然后執(zhí)行完,代碼報錯,數據回滾,數據庫中并沒有存入數據,說明事務起到到該有的作用,數據回滾了。

到此這篇關于springboot項目事務標簽驗證的文章就介紹到這了,更多相關springboot事務標簽驗證內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java web開發(fā)中大量數據導出Excel超時(504)問題解決
開發(fā)測試時候導入數據遇到大數據導入的問題,整理了下,需要的朋友可以參考下2017-04-04

