這篇文章主要講解了“springboot項目事務(wù)標(biāo)簽驗證問題怎么解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“springboot項目事務(wù)標(biāo)簽驗證問題怎么解決”吧!
我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、平果ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的平果網(wǎng)站制作公司springboot項目中配置事務(wù),以前通過標(biāo)簽用過,上個內(nèi)部項目,因為是在別人代碼中使用了,發(fā)現(xiàn)好像沒起作用(然后因為有框架保證,就沒計較了),新啟動項目又用到,驗證了下,springboot項目下配置兩個標(biāo)簽就可以了。
(1)其實就兩個標(biāo)簽,一個用到啟動類中(@EnableTransactionManagement),另一個就是那里需要就配置到哪里(@Transactional);
(2)方案,就隨便找了個以前的測試項目,一個方法中包含:保存一條數(shù)據(jù)到數(shù)據(jù)庫中和一個1除以0代碼,然后看下加不加事務(wù)標(biāo)簽有什么區(qū)別;
(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); }
不加事務(wù)標(biāo)簽,代碼如上。
(1)先清空數(shù)據(jù)庫;
(2)執(zhí)行tstest請求;
發(fā)現(xiàn)insert代碼行執(zhí)行完,數(shù)據(jù)就存到數(shù)據(jù)庫中了。
接著執(zhí)行完成(1/0),雖然報錯代碼報錯,但是數(shù)據(jù)庫中數(shù)據(jù)還是存在的,數(shù)據(jù)沒有回滾,沒有保持一致性。
(1)增加兩個標(biāo)簽,一個是啟動類方法上,一個是tstest方法上。
(2)首先清除數(shù)據(jù),執(zhí)行到insert處
發(fā)現(xiàn)雖然insert代碼行執(zhí)行完成了,但是這時候數(shù)據(jù)庫中并沒有數(shù)據(jù),然后執(zhí)行完,代碼報錯,數(shù)據(jù)回滾,數(shù)據(jù)庫中并沒有存入數(shù)據(jù),說明事務(wù)起到到該有的作用,數(shù)據(jù)回滾了。
感謝各位的閱讀,以上就是“springboot項目事務(wù)標(biāo)簽驗證問題怎么解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對springboot項目事務(wù)標(biāo)簽驗證問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!