解決Springboot不能自動(dòng)提交數(shù)據(jù)庫(kù)連接問(wèn)題
一、問(wèn)題描述
之前一直用的公司框架,所以SSM框架不是特別熟悉,然后新項(xiàng)目采用SSM狂架搭建的。
在其中一個(gè)需求中,我在service層類的方法內(nèi)部調(diào)用了該類的其他方法:
并且是采用this調(diào)用該類的其他方法。
如下:

就是這波操作使得功能一上線就直接拋出異常,數(shù)據(jù)庫(kù)連接不夠。
后經(jīng)過(guò)排查采用this調(diào)用的方法不會(huì)走spring框架自行提交數(shù)據(jù)庫(kù)連接,必須手動(dòng)提交數(shù)據(jù)庫(kù)連接。
因此就會(huì)使得當(dāng)訪問(wèn)量達(dá)到一定量就會(huì)拋出異常。
二、修改方式一(交由spring提交事務(wù))
只需要將用this調(diào)用的方式都改如下即可:將實(shí)例交由spring管理,即可自動(dòng)提交。

三、修改方式二(手動(dòng)提交事務(wù))
@Resource(name="transactionManager")
private DataSourceTransactionManager transactionManager;
DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition();
//開(kāi)啟新事物
transDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus transStatus = transactionManager.getTransaction(transDefinition);
try {
//TODO
transactionManager.commit(transStatus);
} catch (Exception e) {
transactionManager.rollback(transStatus);
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot連接多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
- SpringBoot配置Hikari數(shù)據(jù)庫(kù)連接池的詳細(xì)步驟
- springboot項(xiàng)目連接多種數(shù)據(jù)庫(kù)該如何操作詳析
- IDEA中SpringBoot項(xiàng)目數(shù)據(jù)庫(kù)連接加密方法
- SpringBoot項(xiàng)目中連接Gauss數(shù)據(jù)庫(kù)
- 詳解如何在SpringBoot中配置MySQL數(shù)據(jù)庫(kù)的連接數(shù)
- SpringBoot配置多個(gè)數(shù)據(jù)源超簡(jiǎn)單步驟(連接多個(gè)數(shù)據(jù)庫(kù))
相關(guān)文章
Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn)
這篇文章主要介紹了Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
SpringBoot Maven 項(xiàng)目 pom 中的 plugin&n
本文詳細(xì)介紹了Spring Boot Maven項(xiàng)目打包成jar文件時(shí)使用的spring-boot-maven-plugin插件,深入探討了插件的配置元素,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01
java連接mysql數(shù)據(jù)庫(kù)詳細(xì)步驟解析
以下是對(duì)java連接mysql數(shù)據(jù)庫(kù)的具體詳細(xì)步驟進(jìn)行了分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn)
這篇文章主要介紹了springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Mybatis注解實(shí)現(xiàn)多數(shù)據(jù)源讀寫分離詳解
這篇文章主要給大家介紹了關(guān)于Mybatis注解實(shí)現(xiàn)多數(shù)據(jù)源讀寫分離的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
IDEA在創(chuàng)建包時(shí)如何把包分開(kāi)實(shí)現(xiàn)自動(dòng)分層(方法詳解)
這篇文章主要介紹了IDEA在創(chuàng)建包時(shí)如何把包分開(kāi)實(shí)現(xiàn)自動(dòng)分層,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Spring?WebFlux?與?WebClient?使用指南及最佳實(shí)踐
WebClient是Spring WebFlux模塊提供的非阻塞、響應(yīng)式HTTP客戶端,基于Project Reactor實(shí)現(xiàn),適用于高并發(fā)場(chǎng)景spring?webclient,本文給大家介紹Spring?WebFlux與WebClient使用指南及最佳實(shí)踐,感興趣的朋友一起看看吧2025-07-07
Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法示例
這篇文章主要介紹了Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法,結(jié)合實(shí)例形式分析了Java使用遞歸與循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積相關(guān)概念、原理與操作技巧,需要的朋友可以參考下2017-12-12

