最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Springboot不能自動提交數(shù)據(jù)庫連接問題

 更新時(shí)間:2024年09月29日 08:42:56   作者:謝月  
在使用SSM框架開發(fā)時(shí),若在同一Service內(nèi)部方法間互相調(diào)用,直接使用this關(guān)鍵字會導(dǎo)致事務(wù)管理失效,從而引發(fā)如數(shù)據(jù)庫連接不足等問題,原因是通過this調(diào)用不會經(jīng)過Spring的代理,因此不會自動進(jìn)行事務(wù)處理

一、問題描述

之前一直用的公司框架,所以SSM框架不是特別熟悉,然后新項(xiàng)目采用SSM狂架搭建的。

在其中一個(gè)需求中,我在service層類的方法內(nèi)部調(diào)用了該類的其他方法:

并且是采用this調(diào)用該類的其他方法。

如下:

就是這波操作使得功能一上線就直接拋出異常,數(shù)據(jù)庫連接不夠。

后經(jīng)過排查采用this調(diào)用的方法不會走spring框架自行提交數(shù)據(jù)庫連接,必須手動提交數(shù)據(jù)庫連接。

因此就會使得當(dāng)訪問量達(dá)到一定量就會拋出異常。

二、修改方式一(交由spring提交事務(wù))

只需要將用this調(diào)用的方式都改如下即可:將實(shí)例交由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é)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn)

    Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn)

    這篇文章主要介紹了Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SpringBoot Maven 項(xiàng)目 pom 中的 plugin 插件用法小結(jié)

    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ù)庫詳細(xì)步驟解析

    java連接mysql數(shù)據(jù)庫詳細(xì)步驟解析

    以下是對java連接mysql數(shù)據(jù)庫的具體詳細(xì)步驟進(jìn)行了分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn)

    springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn)

    這篇文章主要介紹了springboot項(xiàng)目整合mybatis并配置mybatis中間件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java多線程編程:線程的原理和使用安全

    Java多線程編程:線程的原理和使用安全

    文章主要介紹了線程的基本概念、線程和進(jìn)程的區(qū)別、線程的創(chuàng)建方法、線程的常見方法與屬性、線程的安全問題等,線程是程序執(zhí)行流的最小單位,可以并發(fā)執(zhí)行并共享數(shù)據(jù),線程的生命周期狀態(tài)包括新建、就緒、運(yùn)行、阻塞、死亡等
    2026-05-05
  • java實(shí)現(xiàn)小球碰撞功能

    java實(shí)現(xiàn)小球碰撞功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)小球碰撞功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • Mybatis注解實(shí)現(xiàn)多數(shù)據(jù)源讀寫分離詳解

    Mybatis注解實(shí)現(xiàn)多數(shù)據(jù)源讀寫分離詳解

    這篇文章主要給大家介紹了關(guān)于Mybatis注解實(shí)現(xiàn)多數(shù)據(jù)源讀寫分離的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • IDEA在創(chuàng)建包時(shí)如何把包分開實(shí)現(xiàn)自動分層(方法詳解)

    IDEA在創(chuàng)建包時(shí)如何把包分開實(shí)現(xiàn)自動分層(方法詳解)

    這篇文章主要介紹了IDEA在創(chuàng)建包時(shí)如何把包分開實(shí)現(xiàn)自動分層,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Spring?WebFlux?與?WebClient?使用指南及最佳實(shí)踐

    Spring?WebFlux?與?WebClient?使用指南及最佳實(shí)踐

    WebClient是Spring WebFlux模塊提供的非阻塞、響應(yīng)式HTTP客戶端,基于Project Reactor實(shí)現(xiàn),適用于高并發(fā)場景spring?webclient,本文給大家介紹Spring?WebFlux與WebClient使用指南及最佳實(shí)踐,感興趣的朋友一起看看吧
    2025-07-07
  • Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法示例

    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

最新評論

永泰县| 南安市| 高碑店市| 南充市| 神农架林区| 蒙城县| 津市市| 江西省| 正镶白旗| 大连市| 青海省| 梁山县| 宾阳县| 大连市| 天峨县| 漯河市| 德惠市| 延川县| 博爱县| 定日县| 岢岚县| 集贤县| 金堂县| 仲巴县| 德令哈市| 潍坊市| 察雅县| 广西| 饶河县| 芜湖市| 嘉祥县| 驻马店市| 黎平县| 会泽县| 剑河县| 永川市| 万盛区| 武鸣县| 鹰潭市| 竹北市| 建水县|