解決Springboot不能自動提交數(shù)據(jù)庫連接問題
一、問題描述
之前一直用的公司框架,所以SSM框架不是特別熟悉,然后新項目采用SSM狂架搭建的。
在其中一個需求中,我在service層類的方法內(nèi)部調(diào)用了該類的其他方法:
并且是采用this調(diào)用該類的其他方法。
如下:
就是這波操作使得功能一上線就直接拋出異常,數(shù)據(jù)庫連接不夠。
后經(jīng)過排查采用this調(diào)用的方法不會走spring框架自行提交數(shù)據(jù)庫連接,必須手動提交數(shù)據(jù)庫連接。
因此就會使得當(dāng)訪問量達到一定量就會拋出異常。
二、修改方式一(交由spring提交事務(wù))
只需要將用this調(diào)用的方式都改如下即可:將實例交由spring管理,即可自動提交。
三、修改方式二(手動提交事務(wù))
@Resource(name="transactionManager") private DataSourceTransactionManager transactionManager; DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition(); //開啟新事物 transDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus transStatus = transactionManager.getTransaction(transDefinition); try { //TODO transactionManager.commit(transStatus); } catch (Exception e) { transactionManager.rollback(transStatus); }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot整合Mybatis Plus和Swagger2的教程詳解
這篇文章主要介紹了Spring Boot整合Mybatis Plus和Swagger2的教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02IDEA整合Dubbo+Zookeeper+SpringBoot實現(xiàn)
初學(xué)者,想自己動手做一個簡單的demo,本文主要介紹了IDEA整合Dubbo+Zookeeper+SpringBoot實現(xiàn),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06Java實現(xiàn)兩人五子棋游戲(四) 落子動作的實現(xiàn)
這篇文章主要為大家詳細介紹了Java實現(xiàn)兩人五子棋游戲,落子動作的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Java字符串操作全解析之語法、示例與應(yīng)用場景分析
在Java算法題和日常開發(fā)中,字符串處理是必備的核心技能,本文全面梳理Java中字符串的常用操作語法,結(jié)合代碼示例、應(yīng)用場景和避坑指南,可快速掌握字符串處理技巧,輕松應(yīng)對筆試面試高頻題目,感興趣的朋友一起看看吧2025-04-04Java中的權(quán)重算法(如Dubbo的負載均衡權(quán)重)詳解
這篇文章主要介紹了Java中的權(quán)重算法(如Dubbo的負載均衡權(quán)重)詳解,負載均衡,其含義就是指將負載進行平衡、分攤到多個操作單元上進行運行,例如FTP服務(wù)器、Web服務(wù)器、企業(yè)核心應(yīng)用服務(wù)器和其它主要任務(wù)服務(wù)器等,從而協(xié)同完成工作任務(wù),需要的朋友可以參考下2023-08-08