springboot項(xiàng)目事務(wù)標(biāo)簽驗(yàn)證
1、問(wèn)題描述
springboot項(xiàng)目中配置事務(wù),以前通過(guò)標(biāo)簽用過(guò),上個(gè)內(nèi)部項(xiàng)目,因?yàn)槭窃趧e人代碼中使用了,發(fā)現(xiàn)好像沒(méi)起作用(然后因?yàn)橛锌蚣鼙WC,就沒(méi)計(jì)較了),新啟動(dòng)項(xiàng)目又用到,驗(yàn)證了下,springboot項(xiàng)目下配置兩個(gè)標(biāo)簽就可以了。
2、解決方案
2.1 說(shuō)明
(1)其實(shí)就兩個(gè)標(biāo)簽,一個(gè)用到啟動(dòng)類中(@EnableTransactionManagement),另一個(gè)就是那里需要就配置到哪里(@Transactional);
(2)方案,就隨便找了個(gè)以前的測(cè)試項(xiàng)目,一個(gè)方法中包含:保存一條數(shù)據(jù)到數(shù)據(jù)庫(kù)中和一個(gè)1除以0代碼,然后看下加不加事務(wù)標(biāo)簽有什么區(qū)別;
2.2 代碼說(shuō)明
(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); //報(bào)錯(cuò),回滾 int i = 1/0; System.out.println(i); }
2.3 驗(yàn)證1,沒(méi)有事務(wù)
不加事務(wù)標(biāo)簽,代碼如上。
(1)先清空數(shù)據(jù)庫(kù);
(2)執(zhí)行tstest請(qǐng)求;
發(fā)現(xiàn)insert代碼行執(zhí)行完,數(shù)據(jù)就存到數(shù)據(jù)庫(kù)中了。
接著執(zhí)行完成(1/0),雖然報(bào)錯(cuò)代碼報(bào)錯(cuò),但是數(shù)據(jù)庫(kù)中數(shù)據(jù)還是存在的,數(shù)據(jù)沒(méi)有回滾,沒(méi)有保持一致性。
2.4 驗(yàn)證2,有事務(wù)
(1)增加兩個(gè)標(biāo)簽,一個(gè)是啟動(dòng)類方法上,一個(gè)是tstest方法上。
(2)首先清除數(shù)據(jù),執(zhí)行到insert處
發(fā)現(xiàn)雖然insert代碼行執(zhí)行完成了,但是這時(shí)候數(shù)據(jù)庫(kù)中并沒(méi)有數(shù)據(jù),然后執(zhí)行完,代碼報(bào)錯(cuò),數(shù)據(jù)回滾,數(shù)據(jù)庫(kù)中并沒(méi)有存入數(shù)據(jù),說(shuō)明事務(wù)起到到該有的作用,數(shù)據(jù)回滾了。
到此這篇關(guān)于springboot項(xiàng)目事務(wù)標(biāo)簽驗(yàn)證的文章就介紹到這了,更多相關(guān)springboot事務(wù)標(biāo)簽驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot 注解事務(wù)聲明式事務(wù)的方式
- 淺談SpringBoot之事務(wù)處理機(jī)制
- 詳解SpringBoot的事務(wù)管理
- 詳解Springboot事務(wù)管理
- SpringBoot+Dubbo+Seata分布式事務(wù)實(shí)戰(zhàn)詳解
- springboot開(kāi)啟聲明式事務(wù)的方法
- SpringBoot內(nèi)部調(diào)用事務(wù)不起作用問(wèn)題的解決方案
- 使用SpringBoot注解方式處理事務(wù)回滾實(shí)現(xiàn)
- SpringBoot事務(wù)使用及回滾實(shí)現(xiàn)代碼詳解
- springBoot service層事務(wù)控制的操作
相關(guān)文章
Java?Dubbo服務(wù)調(diào)用擴(kuò)展點(diǎn)Filter使用教程
Dubbo是阿里巴巴公司開(kāi)源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過(guò)高性能的RPC實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無(wú)縫集成2022-12-12Java中用enum結(jié)合testng實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的方法示例
TestNG數(shù)據(jù)驅(qū)動(dòng)提供的參數(shù)化讓我們?cè)跍y(cè)試項(xiàng)目可以靈活根據(jù)需求建立不同的dataprovider來(lái)提供數(shù)據(jù),而真正實(shí)現(xiàn)數(shù)據(jù),頁(yè)面,測(cè)試彼此獨(dú)立而又有機(jī)結(jié)合的可能性。 下面這篇文章主要給大家介紹了Java中用enum和testng做數(shù)據(jù)驅(qū)動(dòng)的方法示例,需要的朋友可以參考借鑒。2017-01-01java編程實(shí)現(xiàn)兩個(gè)大數(shù)相加代碼示例
這篇文章主要介紹了java編程實(shí)現(xiàn)兩個(gè)大數(shù)相加代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12使用sharding-jdbc實(shí)現(xiàn)水平分表的示例代碼
本文主要介紹了sharding-jdbc實(shí)現(xiàn)水平分表,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11Java向數(shù)據(jù)庫(kù)插入中文出現(xiàn)亂碼解決方案
這篇文章主要介紹了Java向數(shù)據(jù)庫(kù)插入中文出現(xiàn)亂碼解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08使用socket實(shí)現(xiàn)網(wǎng)絡(luò)聊天室和私聊功能
這篇文章主要介紹了使用socket實(shí)現(xiàn)網(wǎng)絡(luò)聊天室和私聊功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12java web開(kāi)發(fā)中大量數(shù)據(jù)導(dǎo)出Excel超時(shí)(504)問(wèn)題解決
開(kāi)發(fā)測(cè)試時(shí)候?qū)霐?shù)據(jù)遇到大數(shù)據(jù)導(dǎo)入的問(wèn)題,整理了下,需要的朋友可以參考下2017-04-04Java運(yùn)算符的知識(shí)點(diǎn)與代碼匯總
這篇文章主要給大家總結(jié)介紹了關(guān)于Java運(yùn)算符知識(shí)點(diǎn)與代碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Spring詳細(xì)講解FactoryBean接口的使用
這篇文章主要為大家介紹了Spring容器FactoryBean工廠實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06